In [1]:
rm(list=ls())
gc()
setwd("/hpc/group/pbenfeylab/CheWei/CW_data/genesys/")
A matrix: 2 x 6 of type dbl
used(Mb)gc trigger(Mb)max used(Mb)
Ncells 62416033.4135894172.6133597171.4
Vcells1157075 8.9838860864.0180227713.8
In [2]:
## Need seu4
suppressMessages(library(Seurat))
suppressMessages(library(cowplot))
suppressMessages(library(scattermore))
suppressMessages(library(scater))
suppressMessages(library(cowplot))
suppressMessages(library(RColorBrewer))
suppressMessages(library(grid))
suppressMessages(library(gplots))
suppressMessages(library(circular))
suppressMessages(library(ggplot2))
suppressMessages(library(ggnewscale))
suppressMessages(library(tidyverse))
suppressMessages(library(ComplexHeatmap))
suppressMessages(library(circlize))
suppressMessages(library(patchwork))
Warning message:
“package ‘ggplot2’ was built under R version 4.2.3”
Warning message:
“package ‘dplyr’ was built under R version 4.2.3”
In [3]:
sessionInfo()
R version 4.2.2 (2022-10-31)
Platform: x86_64-conda-linux-gnu (64-bit)
Running under: CentOS Stream 8

Matrix products: default
BLAS/LAPACK: /hpc/group/pbenfeylab/ch416/miniconda3/envs/seu4/lib/libopenblasp-r0.3.21.so

locale:
 [1] LC_CTYPE=C.UTF-8           LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] grid      stats4    stats     graphics  grDevices utils     datasets 
[8] methods   base     

other attached packages:
 [1] patchwork_1.1.2             circlize_0.4.15            
 [3] ComplexHeatmap_2.14.0       forcats_0.5.2              
 [5] stringr_1.5.0               dplyr_1.1.1                
 [7] purrr_1.0.1                 readr_2.1.3                
 [9] tidyr_1.3.0                 tibble_3.2.1               
[11] tidyverse_1.3.2             ggnewscale_0.4.8           
[13] circular_0.4-95             gplots_3.1.3               
[15] RColorBrewer_1.1-3          scater_1.26.0              
[17] ggplot2_3.4.2               scuttle_1.8.0              
[19] SingleCellExperiment_1.20.0 SummarizedExperiment_1.28.0
[21] Biobase_2.58.0              GenomicRanges_1.50.0       
[23] GenomeInfoDb_1.34.8         IRanges_2.32.0             
[25] S4Vectors_0.36.0            BiocGenerics_0.44.0        
[27] MatrixGenerics_1.10.0       matrixStats_0.63.0         
[29] scattermore_0.8             cowplot_1.1.1              
[31] SeuratObject_4.1.3          Seurat_4.1.1.9001          

loaded via a namespace (and not attached):
  [1] utf8_1.2.3                spatstat.explore_3.1-0   
  [3] reticulate_1.28           tidyselect_1.2.0         
  [5] htmlwidgets_1.6.2         BiocParallel_1.32.5      
  [7] Rtsne_0.16                munsell_0.5.0            
  [9] ScaledMatrix_1.6.0        codetools_0.2-19         
 [11] ica_1.0-3                 pbdZMQ_0.3-8             
 [13] future_1.32.0             miniUI_0.1.1.1           
 [15] withr_2.5.0               spatstat.random_3.1-4    
 [17] colorspace_2.1-0          progressr_0.13.0         
 [19] uuid_1.1-0                ROCR_1.0-11              
 [21] tensor_1.5                listenv_0.9.0            
 [23] repr_1.1.4                GenomeInfoDbData_1.2.9   
 [25] polyclip_1.10-4           parallelly_1.35.0        
 [27] vctrs_0.6.2               generics_0.1.3           
 [29] timechange_0.1.1          doParallel_1.0.17        
 [31] R6_2.5.1                  clue_0.3-64              
 [33] ggbeeswarm_0.7.1          rsvd_1.0.5               
 [35] bitops_1.0-7              spatstat.utils_3.0-2     
 [37] DelayedArray_0.24.0       assertthat_0.2.1         
 [39] promises_1.2.0.1          scales_1.2.1             
 [41] googlesheets4_1.0.1       beeswarm_0.4.0           
 [43] gtable_0.3.3              beachmat_2.14.0          
 [45] globals_0.16.2            goftest_1.2-3            
 [47] rlang_1.1.0               GlobalOptions_0.1.2      
 [49] splines_4.2.2             lazyeval_0.2.2           
 [51] gargle_1.2.1              spatstat.geom_3.1-0      
 [53] broom_1.0.2               modelr_0.1.10            
 [55] reshape2_1.4.4            abind_1.4-5              
 [57] backports_1.4.1           httpuv_1.6.9             
 [59] tools_4.2.2               ellipsis_0.3.2           
 [61] ggridges_0.5.4            Rcpp_1.0.10              
 [63] plyr_1.8.8                base64enc_0.1-3          
 [65] sparseMatrixStats_1.10.0  zlibbioc_1.44.0          
 [67] RCurl_1.98-1.6            deldir_1.0-6             
 [69] GetoptLong_1.0.5          pbapply_1.7-0            
 [71] viridis_0.6.2             zoo_1.8-12               
 [73] haven_2.5.1               ggrepel_0.9.3            
 [75] cluster_2.1.4             fs_1.6.1                 
 [77] magrittr_2.0.3            data.table_1.14.8        
 [79] RSpectra_0.16-1           reprex_2.0.2             
 [81] lmtest_0.9-40             RANN_2.6.1               
 [83] googledrive_2.0.0         mvtnorm_1.1-3            
 [85] fitdistrplus_1.1-8        hms_1.1.2                
 [87] mime_0.12                 evaluate_0.20            
 [89] xtable_1.8-4              readxl_1.4.1             
 [91] shape_1.4.6               fastDummies_1.6.3        
 [93] gridExtra_2.3             compiler_4.2.2           
 [95] KernSmooth_2.23-20        crayon_1.5.2             
 [97] htmltools_0.5.5           tzdb_0.3.0               
 [99] later_1.3.0               lubridate_1.9.0          
[101] DBI_1.1.3                 dbplyr_2.2.1             
[103] MASS_7.3-58.3             boot_1.3-28.1            
[105] Matrix_1.5-4              cli_3.6.1                
[107] parallel_4.2.2            igraph_1.4.2             
[109] pkgconfig_2.0.3           sp_1.6-0                 
[111] IRdisplay_1.1             plotly_4.10.1            
[113] spatstat.sparse_3.0-1     foreach_1.5.2            
[115] xml2_1.3.3                vipor_0.4.5              
[117] XVector_0.38.0            rvest_1.0.3              
[119] digest_0.6.31             sctransform_0.3.5        
[121] RcppAnnoy_0.0.20          spatstat.data_3.0-1      
[123] cellranger_1.1.0          leiden_0.4.3             
[125] uwot_0.1.14               DelayedMatrixStats_1.20.0
[127] shiny_1.7.4               gtools_3.9.4             
[129] rjson_0.2.21              lifecycle_1.0.3          
[131] nlme_3.1-162              jsonlite_1.8.4           
[133] BiocNeighbors_1.16.0      viridisLite_0.4.1        
[135] fansi_1.0.4               pillar_1.9.0             
[137] lattice_0.21-8            fastmap_1.1.1            
[139] httr_1.4.5                survival_3.4-0           
[141] glue_1.6.2                iterators_1.0.14         
[143] png_0.1-8                 stringi_1.7.12           
[145] RcppHNSW_0.4.1            BiocSingular_1.14.0      
[147] caTools_1.18.2            IRkernel_1.3.1.9000      
[149] irlba_2.3.5.1             future.apply_1.10.0      

Load TF list¶

In [4]:
wanted_TFs <- read.csv("./Kay_TF_thalemine_annotations.csv")
In [5]:
nrow(wanted_TFs)
2484
In [6]:
## Make TF names unique
wanted_TFs$Name[wanted_TFs$GeneID=="AT2G33880"]="WOX9"
wanted_TFs$Name[wanted_TFs$GeneID=="AT2G45160"]="SCL27"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G04410"]="NAC78"
wanted_TFs$Name[wanted_TFs$GeneID=="AT3G29035"]="ORS1"
wanted_TFs$Name[wanted_TFs$GeneID=="AT2G02540"]="ZHD3"
wanted_TFs$Name[wanted_TFs$GeneID=="AT3G16500"]="IAA26"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G09740"]="HAG5"
wanted_TFs$Name[wanted_TFs$GeneID=="AT4G24660"]="ZHD2"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G46880"]="HDG5"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G28420"]="RLT1"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G14580"]="BLJ"
wanted_TFs$Name[wanted_TFs$GeneID=="AT3G45260"]="BIB"
wanted_TFs$Name[wanted_TFs$GeneID=="AT2G02070"]="RVN"
wanted_TFs$Name[wanted_TFs$GeneID=="AT2G28160"]="FIT"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G68360"]="GIS3"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G20640"]="NLP4"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G05550"]="VFP5"
wanted_TFs$Name[wanted_TFs$GeneID=="AT3G59470"]="FRF1"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G15150"]="HAT7"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G14750"]="WER"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G75710"]="BRON"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G74500"]="TMO7"
wanted_TFs$Name[wanted_TFs$GeneID=="AT2G12646"]="RITF1"
wanted_TFs$Name[wanted_TFs$GeneID=="AT3G48100"]="ARR5"
wanted_TFs$Name[wanted_TFs$GeneID=="AT4G16141"]="GATA17L"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G65640"]="NFL"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G62700"]="VND5"
wanted_TFs$Name[wanted_TFs$GeneID=="AT4G36160"]="VND2"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G66300"]="VND3"
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G12260"]="VND4"
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G62380"]="VND6"
In [7]:
## TTG1
wanted_TFs$Name[wanted_TFs$GeneID=="AT5G24520"]
'TTG1'
In [8]:
## SCRAMBLED
wanted_TFs$Name[wanted_TFs$GeneID=="AT1G11130"]
In [9]:
## CAPRICE
wanted_TFs$Name[wanted_TFs$GeneID=="AT2G46410"]
'CPC'

Load GRN centrality scores for each transition¶

In [10]:
stem2pro <- read.csv("./TF_GRN_centrality_t0-t1_zscore3.csv")
pro2trans <- read.csv("./TF_GRN_centrality_t1-t3_zscore3.csv")
trans2el <- read.csv("./TF_GRN_centrality_t3-t5_zscore3.csv")
el2el <- read.csv("./TF_GRN_centrality_t5-t7_zscore3.csv")
el2mat <- read.csv("./TF_GRN_centrality_t7-t9_zscore3.csv")
In [11]:
head(stem2pro)
A data.frame: 6 x 62
Xtf_occuranceatri_degree_centralityatri_out_centralityatri_in_centralityatri_betweenness_centralityatri_closeness_centralityatri_eigenvector_centralitytri_degree_centralitytri_out_centrality...phl_in_centralityphl_betweenness_centralityphl_closeness_centralityphl_eigenvector_centralitycol_degree_centralitycol_out_centralitycol_in_centralitycol_betweenness_centralitycol_closeness_centralitycol_eigenvector_centrality
<chr><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1GAMMA-H2AX100.89864860.34459460.554054050.8243141560.0016070540.118064160.805447470.12451362...0.14950170.2489179160.00110869410.061754290.078059070.027426160.050632910.313342380.00039177860.03439140
2CRF2 90.97297300.44369370.529279280.9877778460.0015524850.121887291.178988330.73929961...0.31727570.6300573240.00131081660.075016250.797468350.334388190.463080170.939984810.00059745200.11139614
3HMGB6 90.26126130.20495500.056306310.0023081770.0014008780.062173430.451361870.28015564...0.10299000.0056356790.00099327070.048705140.033755270.015822780.017932490.000000000.00030467520.01628732
4HAT1 90.40540540.21621620.189189190.0028521750.0012660050.074356920.050583660.04669261...0.43023260.9671588330.00126716780.083344290.482067510.241561180.240506330.026771190.00054150020.09398170
5GRP2B 90.27027030.12387390.146396400.0389543040.0011623240.061300340.000000000.00000000...0.53322260.9669377170.00129467710.082593180.672995780.415611810.257383970.281243460.00057186340.10969489
6HB-2 90.50450450.32432430.180180180.6219012470.0013885070.088595950.046692610.01167315...0.30398670.8560151690.00138590500.085851410.548523210.135021100.413502110.014824740.00053004670.10354056
In [12]:
min_max_normalize <- function(data) {
  min_val <- min(data)
  max_val <- max(data)
  normalized_data <- (data - min_val) / (max_val - min_val)
  return(normalized_data)
}
In [13]:
summary(stem2pro$tri_betweenness_centrality)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.0000  0.0000  0.0000  0.0236  0.0000  0.9904 
In [14]:
summary(min_max_normalize(stem2pro$tri_betweenness_centrality))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
0.00000 0.00000 0.00000 0.02383 0.00000 1.00000 
In [15]:
ncol(stem2pro)
62
In [16]:
stem2pro <- as.data.frame(cbind(stem2pro[,1],apply(stem2pro[,3:62],2,min_max_normalize)))
pro2trans <- as.data.frame(cbind(pro2trans[,1],apply(pro2trans[,3:62],2,min_max_normalize)))
trans2el <- as.data.frame(cbind(trans2el[,1],apply(trans2el[,3:62],2,min_max_normalize)))
el2el <- as.data.frame(cbind(el2el[,1],apply(el2el[,3:62],2,min_max_normalize)))
el2mat <- as.data.frame(cbind(el2mat[,1],apply(el2mat[,3:62],2,min_max_normalize)))
In [17]:
dat <- stem2pro %>%
left_join(pro2trans, by = "V1") %>%
left_join(trans2el, by = "V1") %>%
left_join(el2el, by = "V1") %>%
left_join(el2mat, by = "V1")
In [18]:
dat[is.na(dat)] <- 0
In [19]:
n <- c('atri_degree_centrality','atri_out_centrality','atri_in_centrality','atri_betweenness_centrality','atri_closeness_centrality','atri_eigenvector_centrality',
       'tri_degree_centrality','tri_out_centrality','tri_in_centrality','tri_betweenness_centrality','tri_closeness_centrality','tri_eigenvector_centrality',
       'lrc_degree_centrality','lrc_out_centrality','lrc_in_centrality','lrc_betweenness_centrality','lrc_closeness_centrality','lrc_eigenvector_centrality',
       'cor_degree_centrality','cor_out_centrality','cor_in_centrality','cor_betweenness_centrality','cor_closeness_centrality','cor_eigenvector_centrality',
       'end_degree_centrality','end_out_centrality','end_in_centrality','end_betweenness_centrality','end_closeness_centrality','end_eigenvector_centrality',
       'per_degree_centrality','per_out_centrality','per_in_centrality','per_betweenness_centrality','per_closeness_centrality','per_eigenvector_centrality',
       'pro_degree_centrality','pro_out_centrality','pro_in_centrality','pro_betweenness_centrality','pro_closeness_centrality','pro_eigenvector_centrality',
       'xyl_degree_centrality','xyl_out_centrality','xyl_in_centrality','xyl_betweenness_centrality','xyl_closeness_centrality','xyl_eigenvector_centrality',
       'phl_degree_centrality','phl_out_centrality','phl_in_centrality','phl_betweenness_centrality','phl_closeness_centrality','phl_eigenvector_centrality',
       'col_degree_centrality','col_out_centrality','col_in_centrality','col_betweenness_centrality','col_closeness_centrality','col_eigenvector_centrality')
In [20]:
colnames(dat) <- c("TF",gsub("$","_1",n), gsub("$","_2",n),gsub("$","_3",n),gsub("$","_4",n),gsub("$","_5",n))
In [21]:
GeneID <- wanted_TFs$GeneID[match(dat$TF, wanted_TFs$Name)]
In [22]:
dat <- cbind(GeneID, dat)
In [23]:
head(dat)
A data.frame: 6 x 302
GeneIDTFatri_degree_centrality_1atri_out_centrality_1atri_in_centrality_1atri_betweenness_centrality_1atri_closeness_centrality_1atri_eigenvector_centrality_1tri_degree_centrality_1tri_out_centrality_1...phl_in_centrality_5phl_betweenness_centrality_5phl_closeness_centrality_5phl_eigenvector_centrality_5col_degree_centrality_5col_out_centrality_5col_in_centrality_5col_betweenness_centrality_5col_closeness_centrality_5col_eigenvector_centrality_5
<chr><chr><chr><chr><chr><chr><chr><chr><chr><chr>...<chr><chr><chr><chr><chr><chr><chr><chr><chr><chr>
1AT1G54690GAMMA-H2AX0.7762645914396890.4951456310679610.7639751552795030.834513711603393 0.9401512335143540.9548987955084960.63302752293578 0.135593220338983 ...0.003533568904593640 0.4337786297603810.03840808221932050 0 0 00 0
2AT4G23750CRF2 0.8404669260700390.6375404530744340.7298136645962731 0.90822754077444 0.9858201145066070.926605504587156 0.805084745762712 ...0.0117785630153121 0.0001122768497611 0.5796068612319720.117223661689331 0 0 0 00 0
3AT5G23420HMGB6 0.22568093385214 0.2944983818770230.0776397515527950.0023367372148563 0.8195347614069720.5028565487392840.35474006116208 0.305084745762712 ...0 0 0 0 0 0 0 00 0
4AT4G17460HAT1 0.3501945525291830.3106796116504850.2608695652173910.002887466029811410.7406320371156670.6013961706603930.03975535168195720.0508474576271186...0.002355712603062430 0.4626235041912860.03840808221932050.004240882103477520.006722689075630250.0017123287671232900.5340861283071870.0342094681539202
5AT2G21060GRP2B 0.2334630350194550.1779935275080910.2018633540372670.0394363007494029 0.67997746133997 0.4957949748543960 0 ...0.156654888103651 0.004848696548942310.8741343718640730.556195610463054 0.005089058524173030.006722689075630250.0034246575342465800.4744668156050910.0339845056831895
6AT4G16780HB-2 0.43579766536965 0.4660194174757280.2484472049689440.629596269455653 0.81229784641811 0.7165609569881950.036697247706422 0.0127118644067797...0.001177856301531210 0.3987772428713960.02891970595136740 0 0 00 0
In [24]:
numz <- function(x){
    sum(x==0)/length(x)
}
In [25]:
dat$combined_score <- min_max_normalize(rowSums(apply(dat[,grep("centrality",colnames(dat))],2,as.numeric)))
dat$celltype_specificity <- min_max_normalize(apply(apply(dat[,grep("centrality",colnames(dat))],2,as.numeric),1,numz))
dat$weighted_score <- dat$combined_score + dat$celltype_specificity
dat <- dat %>% arrange(desc(weighted_score))
In [26]:
head(dat)
A data.frame: 6 x 305
GeneIDTFatri_degree_centrality_1atri_out_centrality_1atri_in_centrality_1atri_betweenness_centrality_1atri_closeness_centrality_1atri_eigenvector_centrality_1tri_degree_centrality_1tri_out_centrality_1...phl_eigenvector_centrality_5col_degree_centrality_5col_out_centrality_5col_in_centrality_5col_betweenness_centrality_5col_closeness_centrality_5col_eigenvector_centrality_5combined_scorecelltype_specificityweighted_score
<chr><chr><chr><chr><chr><chr><chr><chr><chr><chr>...<chr><chr><chr><chr><chr><chr><chr><dbl><dbl><dbl>
1AT5G24800BZIP9 0 0 0 0 0 0 0 0 ...0.9912293126805690 0 0 00 0 0.73709160.60000001.337092
2AT3G43430AT3G434300 0 0 0 0 0 0 0 ...0.4815313566620940 0 0 00 0 0.75281810.49787231.250690
3AT5G15150HAT7 0 0 0 0 0 0 0.2538226299694190.038135593220339...0 0 0 0 00 0 0.79991750.44255321.242471
4AT3G20840PLT1 0.9610894941634240.9708737864077670.6024844720496890.9763135139586590.9147461921757660.9861441722984380 0 ...0 0.03986429177268870.07563025210084030.0034246575342465800.7454495402941790.2506858807766170.55167550.66808511.219761
5AT5G57620MYB36 0 0 0 0 0 0 0 0 ...0 0 0 0 00 0 0.47913060.71489361.194024
6AT2G45050GATA2 1 0.8284789644012950.8012422360248450.9985948694721240.9656572134620231 0.9816513761467890.936440677966102...0 0 0 0 00 0 0.78607950.40425531.190335
In [784]:
write.csv(dat,"TF_GRN_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=FALSE)

GO terms (Prepare GS)¶

In [27]:
gene_list <- read.table('./gene_list_1108.csv', sep=",", header = TRUE)
In [28]:
exptf <- intersect(gene_list$features, wanted_TFs$GeneID)
length(exptf)
1495
In [29]:
sfun <- read.csv('string_functional_annotations.tsv', sep="\t", header=TRUE)
sann <- read.csv('string_protein_annotations.tsv', sep="\t", header=TRUE)
In [30]:
gsgo1 <- unique(sfun[grep('root|xylem|phloem|procambium|pericycle|vascular|vasculature|stele|tracheary|sieve|trichoblast|atrichoblast|epidermis|epidermal tissue|lateral root cap|root hair|trichome|cortex|endodermis|ground tissue|columella|quiescent center',sfun$term.description, ignore.case=TRUE),]$X.node)
gsgo2 <- unique(sann[grep('root|xylem|phloem|procambium|pericycle|vascular|vasculature|stele|tracheary|sieve|trichoblast|atrichoblast|epidermis|epidermal tissue|lateral root cap|root hair|trichome|cortex|endodermis|ground tissue|columella|quiescent center',sann$domain_summary_url, ignore.case=TRUE),]$X.node)
gsgo <- sort(unique(c(gsgo1, gsgo2)))
In [355]:
#write.csv(data.frame(GeneID=gsgo),"./Gold_Standard_Root_TF_StringDB.csv", quote=FALSE, row.names=FALSE)
In [31]:
length(gsgo)
gsgo
209
  1. 'A0A1I9LNX5'
  2. 'AGL12'
  3. 'AGL16'
  4. 'AHK2'
  5. 'AHK3'
  6. 'AHK4'
  7. 'AIL5'
  8. 'AL6'
  9. 'ANL2'
  10. 'APL'
  11. 'ARF10'
  12. 'ARF16'
  13. 'ARF17'
  14. 'ARF19'
  15. 'ARF7'
  16. 'ARR1'
  17. 'ARR10'
  18. 'ARR12'
  19. 'ARR2'
  20. 'ATHB-13'
  21. 'ATHB-15'
  22. 'ATHB-23'
  23. 'ATHB-8'
  24. 'ATHB-X'
  25. 'ATX1-2'
  26. 'BEH1'
  27. 'BHLH12'
  28. 'BHLH155'
  29. 'BHLH2'
  30. 'BHLH32'
  31. 'BHLH48'
  32. 'BHLH54'
  33. 'BHLH66'
  34. 'BHLH69'
  35. 'BHLH82'
  36. 'BHLH83'
  37. 'BHLH85'
  38. 'BHLH86'
  39. 'BIB'
  40. 'BRM'
  41. 'BZIP19'
  42. 'BZIP23'
  43. 'BZR2'
  44. 'CHC1-2'
  45. 'CHR12'
  46. 'CHR23'
  47. 'CPC'
  48. 'CRF2'
  49. 'DAR2'
  50. 'DOF1.1'
  51. 'DOF2.2'
  52. 'DOF2.4'
  53. 'DOF3.2'
  54. 'DOF3.6'
  55. 'DOF5.1'
  56. 'DOF5.3'
  57. 'DOF5.6'
  58. 'DOT2'
  59. 'DPB'
  60. 'E2FB'
  61. 'EFM'
  62. 'ERF055'
  63. 'ERF104'
  64. 'ET2'
  65. 'ETC1'
  66. 'ETR1'
  67. 'F13K3.12'
  68. 'F24O1.3'
  69. 'F27L4.4'
  70. 'F2I11.230'
  71. 'FEZ'
  72. 'GAI'
  73. 'GALT2'
  74. 'GATA12'
  75. 'GATA23'
  76. 'GIF1'
  77. 'GIS3'
  78. 'GL2'
  79. 'GL3'
  80. 'GRF2-2'
  81. 'GRF3-2'
  82. 'GTL1'
  83. 'HAG1'
  84. 'HAT2'
  85. 'HAT4'
  86. 'HDG11'
  87. 'HDG12'
  88. 'HDG2'
  89. 'HDT1'
  90. 'HHO1'
  91. 'HHO2'
  92. 'HHO3'
  93. 'HHO6'
  94. 'HRS1'
  95. 'HSFA4C'
  96. 'IAA12'
  97. 'IAA14'
  98. 'IAA20'
  99. 'IAA28'
  100. 'IAA3'
  101. 'IAA31'
  102. 'IAA8'
  103. 'IDD4'
  104. 'IDD6'
  105. 'IWS1'
  106. 'JKD'
  107. 'JMJ14'
  108. 'JMJ25'
  109. 'JMJ30'
  110. 'JMJ32'
  111. 'K15E6.5'
  112. 'KAN1'
  113. 'KNAT7'
  114. 'KUA1'
  115. 'LBD15'
  116. 'LBD16'
  117. 'LBD18'
  118. 'LBD29'
  119. 'LBD3'
  120. 'LBD30'
  121. 'LBD4'
  122. 'LDL1'
  123. 'LEP'
  124. 'LHW'
  125. 'LRP1'
  126. 'MAMYB'
  127. 'MGP'
  128. 'MIF1'
  129. 'MTERF9'
  130. 'MYB12'
  131. 'MYB124'
  132. 'MYB20'
  133. 'MYB23'
  134. 'MYB32'
  135. 'MYB36'
  136. 'MYB43'
  137. 'MYB46'
  138. 'MYB52'
  139. 'MYB60'
  140. 'MYB61'
  141. 'MYB7'
  142. 'MYB83'
  143. 'MYB85'
  144. 'MYB86'
  145. 'MYB88'
  146. 'MYC3'
  147. 'MYC4'
  148. 'NAA10'
  149. 'NAC003'
  150. 'NAC005'
  151. 'NAC007'
  152. 'NAC010'
  153. 'NAC026'
  154. 'NAC030'
  155. 'NAC037'
  156. 'NAC043'
  157. 'NAC045'
  158. 'NAC056'
  159. 'NAC075'
  160. 'NAC076'
  161. 'NAC083'
  162. 'NAC084'
  163. 'NAC086'
  164. 'NAC101'
  165. 'NAC104'
  166. 'NAC105'
  167. 'NAC92'
  168. 'NUC'
  169. 'PKL'
  170. 'PLT1'
  171. 'PLT2'
  172. 'PRE3'
  173. 'Q1G3Q4_ARATH'
  174. 'RAP2-11'
  175. 'RAP2-12'
  176. 'RAV1'
  177. 'RBR1'
  178. 'REF6'
  179. 'REV'
  180. 'RGA'
  181. 'SCL22'
  182. 'SCL27'
  183. 'SCL6'
  184. 'SCR'
  185. 'SCRM'
  186. 'SHR'
  187. 'SMB'
  188. 'SOG1'
  189. 'T15F16.14'
  190. 'T2I1.110'
  191. 'TCP14'
  192. 'TCP15'
  193. 'TCP9'
  194. 'TCX2'
  195. 'TCX3'
  196. 'TRY'
  197. 'TSO1'
  198. 'TTG1'
  199. 'UPB1'
  200. 'WER'
  201. 'WIP2-2'
  202. 'WLIM2B'
  203. 'WOX14'
  204. 'WRKY13'
  205. 'WRKY44'
  206. 'WRKY75'
  207. 'ZFP5'
  208. 'ZFP6'
  209. 'ZFP8'
In [32]:
gsgo <- gsub(",.*$","",gsub("^.*ath:","",sann[match(gsgo, sann$X.node),]$other_names_and_aliases))
gsgo[which(gsgo=='831248')]='AT5G14000'
gsgo
  1. 'AT3G53680'
  2. 'AT1G71692'
  3. 'AT3G57230'
  4. 'AT5G35750'
  5. 'AT1G27320'
  6. 'AT2G01830'
  7. 'AT5G57390'
  8. 'AT2G02470'
  9. 'AT4G00730'
  10. 'AT1G79430'
  11. 'AT2G28350'
  12. 'AT4G30080'
  13. 'AT1G77850'
  14. 'AT1G19220'
  15. 'AT5G20730'
  16. 'AT3G16857'
  17. 'AT4G31920'
  18. 'AT2G25180'
  19. 'AT4G16110'
  20. 'AT1G69780'
  21. 'AT1G52150'
  22. 'AT1G26960'
  23. 'AT4G32880'
  24. 'AT1G70920'
  25. 'AT2G31650'
  26. 'AT3G50750'
  27. 'AT4G00480'
  28. 'AT2G31280'
  29. 'AT1G63650'
  30. 'AT3G25710'
  31. 'AT2G42300'
  32. 'AT1G27740'
  33. 'AT2G24260'
  34. 'AT4G30980'
  35. 'AT5G58010'
  36. 'AT1G66470'
  37. 'AT4G33880'
  38. 'AT5G37800'
  39. 'AT3G45260'
  40. 'AT2G46020'
  41. 'AT4G35040'
  42. 'AT2G16770'
  43. 'AT1G19350'
  44. 'AT5G14170'
  45. 'AT3G06010'
  46. 'AT5G19310'
  47. 'AT2G46410'
  48. 'AT4G23750'
  49. 'AT2G39830'
  50. 'AT1G07640'
  51. 'AT2G28810'
  52. 'AT2G37590'
  53. 'AT3G45610'
  54. 'AT3G55370'
  55. 'AT5G02460'
  56. 'AT5G60200'
  57. 'AT5G62940'
  58. 'AT5G16780'
  59. 'AT5G03415'
  60. 'AT5G22220'
  61. 'AT2G03500'
  62. 'AT1G36060'
  63. 'AT5G61600'
  64. 'AT5G56780'
  65. 'AT1G01380'
  66. 'AT1G66340'
  67. 'AT2G36720'
  68. 'AT1G62310'
  69. 'AT2G23780'
  70. 'AT5G11340'
  71. 'AT1G26870'
  72. 'AT1G14920'
  73. 'AT4G21060'
  74. 'AT5G25830'
  75. 'AT5G26930'
  76. 'AT5G28640'
  77. 'AT1G68360'
  78. 'AT1G79840'
  79. 'AT5G41315'
  80. 'AT4G37740'
  81. 'AT2G36400'
  82. 'AT1G33240'
  83. 'AT3G54610'
  84. 'AT5G47370'
  85. 'AT4G16780'
  86. 'AT1G73360'
  87. 'AT1G17920'
  88. 'AT1G05230'
  89. 'AT3G44750'
  90. 'AT3G25790'
  91. 'AT1G68670'
  92. 'AT1G25550'
  93. 'AT1G49560'
  94. 'AT1G13300'
  95. 'AT5G45710'
  96. 'AT1G04550'
  97. 'AT4G14550'
  98. 'AT2G46990'
  99. 'AT5G25890'
  100. 'AT1G04240'
  101. 'AT3G17600'
  102. 'AT2G22670'
  103. 'AT2G02080'
  104. 'AT1G14580'
  105. 'AT1G32130'
  106. 'AT5G03150'
  107. 'AT4G20400'
  108. 'AT3G07610'
  109. 'AT3G20810'
  110. 'AT3G45880'
  111. 'AT5G38840'
  112. 'AT5G16560'
  113. 'AT1G62990'
  114. 'AT5G47390'
  115. 'AT2G40470'
  116. 'AT2G42430'
  117. 'AT2G45420'
  118. 'AT3G58190'
  119. 'AT1G16530'
  120. 'AT4G00220'
  121. 'AT1G31320'
  122. 'AT1G62830'
  123. 'AT5G13910'
  124. 'AT2G27230'
  125. 'AT5G12330'
  126. 'AT5G45420'
  127. 'AT1G03840'
  128. 'AT1G74660'
  129. 'AT5G55580'
  130. 'AT2G47460'
  131. 'AT1G14350'
  132. 'AT1G66230'
  133. 'AT5G40330'
  134. 'AT4G34990'
  135. 'AT5G57620'
  136. 'AT5G16600'
  137. 'AT5G12870'
  138. 'AT1G17950'
  139. 'AT1G08810'
  140. 'AT1G09540'
  141. 'AT2G16720'
  142. 'AT3G08500'
  143. 'AT4G22680'
  144. 'AT5G26660'
  145. 'AT2G02820'
  146. 'AT5G46760'
  147. 'AT4G17880'
  148. 'AT5G13780'
  149. 'AT1G02220'
  150. 'AT1G02250'
  151. 'AT1G12260'
  152. 'AT1G28470'
  153. 'AT1G62700'
  154. 'AT1G71930'
  155. 'AT2G18060'
  156. 'AT2G46770'
  157. 'AT3G03200'
  158. 'AT3G15510'
  159. 'AT4G29230'
  160. 'AT4G36160'
  161. 'AT5G13180'
  162. 'AT5G14000'
  163. 'AT5G17260'
  164. 'AT5G62380'
  165. 'AT5G64530'
  166. 'AT5G66300'
  167. 'AT5G39610'
  168. 'AT5G44160'
  169. 'AT2G25170'
  170. 'AT3G20840'
  171. 'AT1G51190'
  172. 'AT1G74500'
  173. 'AT2G12646'
  174. 'AT5G19790'
  175. 'AT1G53910'
  176. 'AT1G13260'
  177. 'AT3G12280'
  178. 'AT3G48430'
  179. 'AT5G60690'
  180. 'AT2G01570'
  181. 'AT3G60630'
  182. 'AT2G45160'
  183. 'AT4G00150'
  184. 'AT3G54220'
  185. 'AT3G26744'
  186. 'AT4G37650'
  187. 'AT1G79580'
  188. 'AT1G25580'
  189. 'AT4G08455'
  190. 'AT5G07400'
  191. 'AT3G47620'
  192. 'AT1G69690'
  193. 'AT2G45680'
  194. 'AT4G14770'
  195. 'AT3G22760'
  196. 'AT5G53200'
  197. 'AT3G22780'
  198. 'AT5G24520'
  199. 'AT2G47270'
  200. 'AT5G14750'
  201. 'AT3G57670'
  202. 'AT3G55770'
  203. 'AT1G20700'
  204. 'AT4G39410'
  205. 'AT2G37260'
  206. 'AT5G13080'
  207. 'AT1G10480'
  208. 'AT1G67030'
  209. 'AT2G41940'
In [33]:
sann[which(sann$X.node=="HAT7"),]
A data.frame: 1 x 5
X.nodeidentifierdomain_summary_urlannotationother_names_and_aliases
<chr><chr><chr><chr><chr>
668HAT73702.Q00466Homeobox-leucine zipper protein HAT7; Probable transcription factor.https://smart.embl.de/smart/DDvec.cgi?smart=314:HOX(113|174)+831367,AT5G15150,ATHB-3,At5g15150,F8M21_40,HAT7,HAT7_ARATH,HB-3,HD-ZIP protein 7,HD-ZIP protein ATHB-3,Homeobox 3,Homeobox-leucine zipper protein,Homeobox-leucine zipper protein HAT7,Homeodomain transcription factor ATHB-3,Homeodomain-leucine zipper protein HAT7,NM_121519.3,NP_568309,NP_568309.2,Q00466,Q0WNS2,Q9LXG6,ath:AT5G15150
In [34]:
sann[grep("831248",sann$other_names_and_aliases, ignore.case = TRUE),]
A data.frame: 1 x 5
X.nodeidentifierdomain_summary_urlannotationother_names_and_aliases
<chr><chr><chr><chr><chr>
980NAC0843702.A0A1P8BAC2NAC domain containing protein 84.https://smart.embl.de/smart/DDvec.cgi?smart=262:Pfam_NAM(16|196)+831248,A0A1P8BAC2,A0A1P8BAC2_ARATH,At5g14000,MAC12.3,MAC12_3,NAC domain containing protein 84,NAC084,NM_001343305.1,NP_001330278.1,anac084

R50¶

In [35]:
r50 <- 105
numz <- function(x){
    sum(x==0)/length(x)
}

GeneSys¶

In [36]:
genesys <- dat
In [37]:
run_r50_genesys <- function(x){
    genesys$combined_score <- min_max_normalize(rowSums(apply(genesys[,grep(x,colnames(genesys))],2,as.numeric)))
    genesys <- genesys %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(genesys))){
        if (genesys$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [363]:
## all cell type : in centrality + celltype & dev stage specificity
#dat$combined_score <- min_max_normalize(rowSums(apply(dat[,grep("in_centrality",colnames(dat))],2,as.numeric)))
#dat$celltype_specificity <- min_max_normalize(apply(apply(dat[,grep("in_centrality",colnames(dat))],2,as.numeric),1,numz))
#dat$weighted_score <- dat$combined_score + dat$celltype_specificity
#dat <- dat %>% arrange(desc(weighted_score))

#count <- 0
#for (i in seq(nrow(dat))){
#    if (dat$GeneID[i] %in% gsgo){
#        count <- count +1
#        if (count == r50){
#            print(i)
#            break
#        }
#    }
#}

CellOracle¶

In [38]:
prepros <- function(x){
    dat <- read.csv(x)
    #dat <- dat %>% filter(role=="Connector Hub") 
    dat <- dat[,c(1, grep("centrality",colnames(dat)), 22)]
    return(dat)
}
In [39]:
atri <- prepros("../celloracle/atrichoblast_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
tri <- prepros("../celloracle/trichoblast_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
lrc <- prepros("../celloracle/lrc_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
cor <- prepros("../celloracle/cortex_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
end <- prepros("../celloracle/endodermis_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
per <- prepros("../celloracle/pericycle_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
pro <- prepros("../celloracle/procambium_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
xyl <- prepros("../celloracle/xylem_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
phl <- prepros("../celloracle/phloem_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
col <- prepros("../celloracle/columella_Root_Atlas_SCT_celloracle_gene_score_iGRN.csv")
In [40]:
dat <- rbind(atri, tri, lrc, cor, end, per, pro, xyl, phl, col)
## Remove those not present in the dataset
dat <- dat[!is.na(match(dat$X,exptf)),]
dat <- dat %>% group_by(cluster) %>% reframe(GeneID=X,degree_centrality = min_max_normalize(degree_centrality_all), 
                                  in_centrality = min_max_normalize(degree_centrality_in), 
                                  out_centrality = min_max_normalize(degree_centrality_out),
                                 betweenness_centrality = min_max_normalize(betweenness_centrality),
                                 closeness_centrality = min_max_normalize(closeness_centrality),
                                 eigenvector_centrality = min_max_normalize(eigenvector_centrality))
dat <- dat %>% group_by(GeneID) %>% reframe(degree_centrality = sum(degree_centrality), 
                                  in_centrality = sum(in_centrality), 
                                  out_centrality = sum(out_centrality),
                                 betweenness_centrality = sum(betweenness_centrality),
                                 closeness_centrality = sum(closeness_centrality),
                                 eigenvector_centrality = sum(eigenvector_centrality))
dat <- cbind(dat[,1],apply(dat[,2:7],2,min_max_normalize))
In [41]:
head(dat)
A data.frame: 6 x 7
GeneIDdegree_centralityin_centralityout_centralitybetweenness_centralitycloseness_centralityeigenvector_centrality
<chr><dbl><dbl><dbl><dbl><dbl><dbl>
1AT1G010100.08493939980.0653179640.0817359542.592974e-020.36436924120.068339145
2AT1G010300.00095420210.0000000000.0044475680.000000e+000.00034497730.003632920
3AT1G012600.02334381320.0000000000.0335650690.000000e+000.08720810850.016136854
4AT1G013500.02934683470.1343783560.0000000000.000000e+000.00000000000.017764785
5AT1G013800.00356146610.0054922450.0045731497.240465e-050.08528539040.003752290
6AT1G016400.00604418420.0232158000.0000000000.000000e+000.00000000000.006672674
In [42]:
celloracle <- dat
In [43]:
run_r50_celloracle <- function(x){
    celloracle$combined_score <- celloracle[,grep(x,colnames(celloracle))]
    celloracle <- celloracle %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(celloracle))){
        if (celloracle$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [370]:
## all cell type : degree centrality + out centrality + in centrality + betweenness centrality + closeness + eigenvector
#dat$combined_score <- min_max_normalize(rowSums(apply(dat[,grep("centrality",colnames(dat))],2,as.numeric)))
#dat <- dat %>% arrange(desc(combined_score))

#count <- 0
#for (i in seq(nrow(dat))){
#    if (dat$GeneID[i] %in% gsgo){
#        count <- count +1
#        if (count == r50){
#            print(i)
#            break
#        }
#    }
#}
In [371]:
#dat$combined_score <- min_max_normalize(rowSums(apply(dat[,grep("betweenness_centrality|celltype_specificity",colnames(dat))],2,as.numeric)))
#dat <- dat %>% arrange(desc(combined_score))

#count <- 0
#for (i in seq(nrow(dat))){
#    if (dat$GeneID[i] %in% gsgo){
#        count <- count +1
#        if (count == r50){
#            print(i)
#            break
#        }
#    }
#}

DE (Root_Atlas)¶

In [44]:
de <- read.csv("Root_Atlas_DE_Gene_List.csv")
In [45]:
de <- de %>% arrange(pct.diff_rank) %>% arrange(avg_diff_rank)%>% arrange(myAUC_rank)%>% arrange(combined_rank)
In [46]:
## Remove those not present in the dataset
de <- de[!is.na(match(de$gene.ID,exptf)),]
In [47]:
head(de)
A data.frame: 6 x 14
myAUCavg_diffpowerpct.1pct.2celltypepseudotime.bingene.IDgene.namepct.diffpct.diff_rankavg_diff_rankmyAUC_rankcombined_rank
<dbl><dbl><dbl><dbl><dbl><chr><chr><chr><chr><dbl><int><int><int><int>
130.9011.9858250.8020.9590.287EndodermisT4AT5G13910LEP 0.672 2 411
400.9342.8208100.8680.9000.155ProcambiumT0AT1G54690HTA3 0.745 23521
510.8412.3515950.6820.8810.297ProcambiumT1AT1G25560TEM1 0.584 11131
580.9793.7991260.9581.0000.046Xylem T1AT4G22680MYB85 0.954 1 741
630.9454.6664020.8900.7650.054Phloem T2AT3G60530GATA4 0.71135 151
660.8712.6230280.7420.8770.242ProcambiumT2AT1G66600WRKY630.635 1 551
In [48]:
dat <- de %>% group_by(gene.ID) %>% reframe(combined_rank = mean(combined_rank),myAUC_rank = mean(myAUC_rank),pct.diff_rank = mean(pct.diff_rank),avg_diff_rank = mean(avg_diff_rank))
dat <- dat %>% arrange(combined_rank)
colnames(dat) <- c("GeneID","combined_rank","myAUC_rank","pct.diff_rank","avg_diff_rank")
In [49]:
head(dat)
A tibble: 6 x 5
GeneIDcombined_rankmyAUC_rankpct.diff_rankavg_diff_rank
<chr><dbl><dbl><dbl><dbl>
AT1G66600 6.50000019.5000023.0000011.50000
AT5G58010 8.333333 9.00000 7.0000016.00000
AT1G13600 9.50000042.0000034.5000019.50000
AT4G3726012.33333310.3333320.3333341.66667
AT1G2668013.00000073.0000037.0000078.00000
AT1G6166013.00000019.6666717.3333338.33333
In [50]:
de <- dat
In [51]:
run_r50_de <- function(x){
    de$combined_score <- de[,grep(x,colnames(de))]
    de <- de %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(de))){
        if (de$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}

Plot r50 with ranked by different centrality¶

In [52]:
## Expressed TFs permutation
R50_permutation <- c()
for (j in 1:1000){
ran <- sample(exptf, length(exptf), replace=FALSE)
count <- 0
for (i in seq(length(ran))){
    if (ran[i] %in% gsgo){
        count <- count +1
        if (count == r50){
            R50_permutation <- c(R50_permutation,i)
            break
        }
    }
}
}
In [53]:
toplt <- data.frame(Methods=c("GeneSys degree centrality", "GeneSys out centrality", "GeneSys in centrality", "GeneSys betweenness centrality", 
                 "GeneSys closeness centrality", "GeneSys eigenvector centrality","CellOracle degree centrality", "CellOracle out centrality", 
                 "CellOracle in centrality", "CellOracle betweenness centrality", "CellOracle closeness centrality", "CellOracle eigenvector centrality",
                 "DE myAUC rank", "DE pct diff rank", "DE avg diff rank", "Expressed TFs permutation"),
           R50=c(run_r50_genesys('degree_centrality'),run_r50_genesys('out_centrality'),run_r50_genesys('in_centrality'),
                 run_r50_genesys('betweenness_centrality'),run_r50_genesys('closeness_centrality'),run_r50_genesys('eigenvector_centrality'),
                 run_r50_celloracle('degree_centrality'),run_r50_celloracle('out_centrality'),run_r50_celloracle('in_centrality'),
                 run_r50_celloracle('betweenness_centrality'),run_r50_celloracle('closeness_centrality'),run_r50_celloracle('eigenvector_centrality'),
                 run_r50_de('myAUC_rank'),run_r50_de('pct.diff_rank'),run_r50_de('avg_diff_rank'), mean(R50_permutation)))
In [54]:
toplt
A data.frame: 16 x 2
MethodsR50
<chr><dbl>
GeneSys degree centrality 403.000
GeneSys out centrality 409.000
GeneSys in centrality 383.000
GeneSys betweenness centrality 372.000
GeneSys closeness centrality 695.000
GeneSys eigenvector centrality 460.000
CellOracle degree centrality 479.000
CellOracle out centrality 469.000
CellOracle in centrality 461.000
CellOracle betweenness centrality413.000
CellOracle closeness centrality 505.000
CellOracle eigenvector centrality488.000
DE myAUC rank 484.000
DE pct diff rank 495.000
DE avg diff rank 472.000
Expressed TFs permutation 749.023
In [55]:
options(repr.plot.width=8, repr.plot.height=8)
ggplot(toplt, aes(x=reorder(Methods, R50, decreasing = TRUE),  y=R50)) + geom_point(size=4)+ 
  labs(title="TF Prioritization Performance (R50)",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [56]:
toplt <- data.frame(Methods=factor(c(rep("GeneSys",6), rep("CellOracle",6), rep("DE",3), "Expressed TFs permutation"), 
                                   levels=c("Expressed TFs permutation", "DE", "CellOracle", "GeneSys")), R50=toplt$R50)

options(repr.plot.width=9.5, repr.plot.height=6)
ggplot(toplt, aes(x=Methods, y=R50))+
  geom_boxplot(width=0.3)+ 
  labs(title="TF Prioritization Performance (R50)",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()

R50 for Tissue specific TFs¶

Stele (xylem, phloem, procambium)¶

In [320]:
gsgo <- read.csv("./Gold_Standard_Root_TF_StringDB.csv", header=TRUE)
gsgo <- gsgo[which(gsgo[,5]=="Yes"),]
gsgo$preferredName
gsgo <- gsgo$GeneID
  1. 'APL'
  2. 'ATHB-8'
  3. 'BHLH48'
  4. 'DAR2'
  5. 'DOF5.3'
  6. 'DOF5.6'
  7. 'DOT2'
  8. 'ERF104'
  9. 'ET2'
  10. 'GATA12'
  11. 'KAN1'
  12. 'KNAT7'
  13. 'LBD15'
  14. 'LBD18'
  15. 'LBD30'
  16. 'LBD4'
  17. 'LHW'
  18. 'MYB20'
  19. 'MYB32'
  20. 'MYB43'
  21. 'MYB46'
  22. 'MYB52'
  23. 'MYB61'
  24. 'MYB7'
  25. 'MYB83'
  26. 'MYB85'
  27. 'NAC005'
  28. 'NAC007'
  29. 'NAC010'
  30. 'NAC026'
  31. 'NAC030'
  32. 'NAC037'
  33. 'NAC043'
  34. 'NAC045'
  35. 'NAC075'
  36. 'NAC076'
  37. 'NAC083'
  38. 'NAC086'
  39. 'NAC101'
  40. 'NAC104'
  41. 'NAC105'
  42. 'REV'
  43. 'WOX14'
In [321]:
length(gsgo)
43
In [322]:
r50 <- 22
In [323]:
## Define genesys
run_r50_genesys <- function(x){
    genesys$ct_score <- min_max_normalize(rowSums(apply(genesys[,grep(paste0('xyl_',x,'|phl_',x,'|pro_',x),colnames(genesys))],2,as.numeric)))
    genesys$combined_score <- genesys$ct_score
    
    genesys <- genesys %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(genesys))){
        if (genesys$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [324]:
## Define celloracle
dat <- rbind(pro, xyl, phl)
## Remove those not present in the dataset
dat <- dat[!is.na(match(dat$X,exptf)),]
dat <- dat %>% group_by(cluster) %>% reframe(GeneID=X,degree_centrality = min_max_normalize(degree_centrality_all), 
                                  in_centrality = min_max_normalize(degree_centrality_in), 
                                  out_centrality = min_max_normalize(degree_centrality_out),
                                 betweenness_centrality = min_max_normalize(betweenness_centrality),
                                 closeness_centrality = min_max_normalize(closeness_centrality),
                                 eigenvector_centrality = min_max_normalize(eigenvector_centrality))
dat <- dat %>% group_by(GeneID) %>% reframe(degree_centrality = sum(degree_centrality), 
                                  in_centrality = sum(in_centrality), 
                                  out_centrality = sum(out_centrality),
                                 betweenness_centrality = sum(betweenness_centrality),
                                 closeness_centrality = sum(closeness_centrality),
                                 eigenvector_centrality = sum(eigenvector_centrality))
dat <- cbind(dat[,1],apply(dat[,2:7],2,min_max_normalize))

celloracle <- dat

run_r50_celloracle <- function(x){
    celloracle$combined_score <- celloracle[,grep(x,colnames(celloracle))]
    celloracle <- celloracle %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(celloracle))){
        if (celloracle$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [325]:
## Define DE
de <- read.csv("Root_Atlas_DE_Gene_List.csv")
de <- de %>% filter(celltype=="Xylem"|celltype=="Phloem"|celltype=="Procambium")
## Remove those not present in the dataset
de <- de[!is.na(match(de$gene.ID,exptf)),]
dat <- de %>% group_by(gene.ID) %>% reframe(combined_rank = mean(combined_rank),myAUC_rank = mean(myAUC_rank),pct.diff_rank = mean(pct.diff_rank),avg_diff_rank = mean(avg_diff_rank))
dat <- dat %>% arrange(combined_rank)
colnames(dat) <- c("GeneID","combined_rank","myAUC_rank","pct.diff_rank","avg_diff_rank")
de <- dat
run_r50_de <- function(x){
    de$combined_score <- de[,grep(x,colnames(de))]
    de <- de %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(de))){
        if (de$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [326]:
## Expressed TFs permutation
R50_permutation <- c()
for (j in 1:1000){
ran <- sample(exptf, length(exptf), replace=FALSE)
count <- 0
for (i in seq(length(ran))){
    if (ran[i] %in% gsgo){
        count <- count +1
        if (count == r50){
            R50_permutation <- c(R50_permutation,i)
            break
        }
    }
}
}
In [327]:
toplt <- data.frame(Methods=c("GeneSys degree centrality", "GeneSys out centrality", "GeneSys in centrality", "GeneSys betweenness centrality", 
                 "GeneSys closeness centrality", "GeneSys eigenvector centrality","CellOracle degree centrality", "CellOracle out centrality", 
                 "CellOracle in centrality", "CellOracle betweenness centrality", "CellOracle closeness centrality", "CellOracle eigenvector centrality",
                 "DE myAUC rank", "DE pct diff rank", "DE avg diff rank", "Expressed TFs permutation"),
           R50=c(run_r50_genesys('degree_centrality'),run_r50_genesys('out_centrality'),run_r50_genesys('in_centrality'),
                 run_r50_genesys('betweenness_centrality'),run_r50_genesys('closeness_centrality'),run_r50_genesys('eigenvector_centrality'),
                 run_r50_celloracle('degree_centrality'),run_r50_celloracle('out_centrality'),run_r50_celloracle('in_centrality'),
                 run_r50_celloracle('betweenness_centrality'),run_r50_celloracle('closeness_centrality'),run_r50_celloracle('eigenvector_centrality'),
                 run_r50_de('myAUC_rank'),run_r50_de('pct.diff_rank'),run_r50_de('avg_diff_rank'), mean(R50_permutation)))
In [328]:
toplt
A data.frame: 16 x 2
MethodsR50
<chr><dbl>
GeneSys degree centrality 94.000
GeneSys out centrality 159.000
GeneSys in centrality 91.000
GeneSys betweenness centrality 137.000
GeneSys closeness centrality 474.000
GeneSys eigenvector centrality 160.000
CellOracle degree centrality 288.000
CellOracle out centrality 255.000
CellOracle in centrality 190.000
CellOracle betweenness centrality154.000
CellOracle closeness centrality 337.000
CellOracle eigenvector centrality252.000
DE myAUC rank 275.000
DE pct diff rank 302.000
DE avg diff rank 245.000
Expressed TFs permutation 747.206
In [298]:
options(repr.plot.width=12, repr.plot.height=8)
ggplot(toplt, aes(x=reorder(Methods, R50, decreasing = TRUE),  y=R50)) + geom_point(size=4)+ 
  labs(title="Stele-specific TF Prioritization Performance (R50)",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [329]:
toplt <- data.frame(Methods=factor(c(rep("GeneSys",6), rep("CellOracle",6), rep("DE",3), "Expressed TFs permutation"), 
                                   levels=c("Expressed TFs permutation", "DE", "CellOracle", "GeneSys")), R50=toplt$R50)

options(repr.plot.width=9.5, repr.plot.height=6)
ggplot(toplt, aes(x=Methods, y=R50))+
  geom_boxplot(width=0.3)+ 
  labs(title="Stele-specific TF Prioritization Performance",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()

Epidermis¶

In [305]:
gsgo <- read.csv("./Gold_Standard_Root_TF_StringDB.csv", header=TRUE)
gsgo <- gsgo[which(gsgo[,6]=="Yes"),]
gsgo$preferredName
gsgo <- gsgo$GeneID
  1. 'AGL16'
  2. 'AL6'
  3. 'ANL2'
  4. 'BHLH12'
  5. 'BHLH2'
  6. 'BHLH32'
  7. 'BHLH54'
  8. 'BHLH66'
  9. 'BHLH69'
  10. 'BHLH82'
  11. 'BHLH83'
  12. 'BHLH85'
  13. 'BHLH86'
  14. 'CPC'
  15. 'E2FB'
  16. 'ETC1'
  17. 'GALT2'
  18. 'GIS3'
  19. 'GL2'
  20. 'GL3'
  21. 'GTL1'
  22. 'HDG11'
  23. 'HDG12'
  24. 'HDG2'
  25. 'JMJ25'
  26. 'MAMYB'
  27. 'MYB124'
  28. 'MYB23'
  29. 'MYB86'
  30. 'MYB88'
  31. 'MYC3'
  32. 'MYC4'
  33. 'RBR1'
  34. 'SCL22'
  35. 'SCL27'
  36. 'SCL6'
  37. 'SCRM'
  38. 'TCX2'
  39. 'TCX3'
  40. 'TRY'
  41. 'TSO1'
  42. 'TTG1'
  43. 'WER'
  44. 'WRKY44'
  45. 'WRKY75'
  46. 'ZFP5'
  47. 'ZFP6'
  48. 'ZFP8'
In [306]:
length(gsgo)
r50 <- 24
48
In [307]:
## Define genesys
run_r50_genesys <- function(x){
    genesys$ct_score <- min_max_normalize(rowSums(apply(genesys[,grep(paste0('atri_',x,'|tri_',x,'|lrc_',x),colnames(genesys))],2,as.numeric)))
    genesys$combined_score <- genesys$ct_score
    
    genesys <- genesys %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(genesys))){
        if (genesys$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [308]:
## Define celloracle
dat <- rbind(atri, tri, lrc)
## Remove those not present in the dataset
dat <- dat[!is.na(match(dat$X,exptf)),]
dat <- dat %>% group_by(cluster) %>% reframe(GeneID=X,degree_centrality = min_max_normalize(degree_centrality_all), 
                                  in_centrality = min_max_normalize(degree_centrality_in), 
                                  out_centrality = min_max_normalize(degree_centrality_out),
                                 betweenness_centrality = min_max_normalize(betweenness_centrality),
                                 closeness_centrality = min_max_normalize(closeness_centrality),
                                 eigenvector_centrality = min_max_normalize(eigenvector_centrality))
dat <- dat %>% group_by(GeneID) %>% reframe(degree_centrality = sum(degree_centrality), 
                                  in_centrality = sum(in_centrality), 
                                  out_centrality = sum(out_centrality),
                                 betweenness_centrality = sum(betweenness_centrality),
                                 closeness_centrality = sum(closeness_centrality),
                                 eigenvector_centrality = sum(eigenvector_centrality))
dat <- cbind(dat[,1],apply(dat[,2:7],2,min_max_normalize))

celloracle <- dat

run_r50_celloracle <- function(x){
    celloracle$combined_score <- celloracle[,grep(x,colnames(celloracle))]
    celloracle <- celloracle %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(celloracle))){
        if (celloracle$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [309]:
## Define DE
de <- read.csv("Root_Atlas_DE_Gene_List.csv")
de <- de %>% filter(celltype=="Atrichoblast"|celltype=="Trichoblast"|celltype=="Lateral Root Cap")
## Remove those not present in the dataset
de <- de[!is.na(match(de$gene.ID,exptf)),]
dat <- de %>% group_by(gene.ID) %>% reframe(combined_rank = mean(combined_rank),myAUC_rank = mean(myAUC_rank),pct.diff_rank = mean(pct.diff_rank),avg_diff_rank = mean(avg_diff_rank))
dat <- dat %>% arrange(combined_rank)
colnames(dat) <- c("GeneID","combined_rank","myAUC_rank","pct.diff_rank","avg_diff_rank")
de <- dat
run_r50_de <- function(x){
    de$combined_score <- de[,grep(x,colnames(de))]
    de <- de %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(de))){
        if (de$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [310]:
## Expressed TFs permutation
R50_permutation <- c()
for (j in 1:1000){
ran <- sample(exptf, length(exptf), replace=FALSE)
count <- 0
for (i in seq(length(ran))){
    if (ran[i] %in% gsgo){
        count <- count +1
        if (count == r50){
            R50_permutation <- c(R50_permutation,i)
            break
        }
    }
}
}
In [311]:
toplt <- data.frame(Methods=c("GeneSys degree centrality", "GeneSys out centrality", "GeneSys in centrality", "GeneSys betweenness centrality", 
                 "GeneSys closeness centrality", "GeneSys eigenvector centrality","CellOracle degree centrality", "CellOracle out centrality", 
                 "CellOracle in centrality", "CellOracle betweenness centrality", "CellOracle closeness centrality", "CellOracle eigenvector centrality",
                 "DE myAUC rank", "DE pct diff rank", "DE avg diff rank", "Expressed TFs permutation"),
           R50=c(run_r50_genesys('degree_centrality'),run_r50_genesys('out_centrality'),run_r50_genesys('in_centrality'),
                 run_r50_genesys('betweenness_centrality'),run_r50_genesys('closeness_centrality'),run_r50_genesys('eigenvector_centrality'),
                 run_r50_celloracle('degree_centrality'),run_r50_celloracle('out_centrality'),run_r50_celloracle('in_centrality'),
                 run_r50_celloracle('betweenness_centrality'),run_r50_celloracle('closeness_centrality'),run_r50_celloracle('eigenvector_centrality'),
                 999,999,999, mean(R50_permutation)))
In [312]:
toplt
A data.frame: 16 x 2
MethodsR50
<chr><dbl>
GeneSys degree centrality 288.00
GeneSys out centrality 339.00
GeneSys in centrality 318.00
GeneSys betweenness centrality 329.00
GeneSys closeness centrality 355.00
GeneSys eigenvector centrality 309.00
CellOracle degree centrality 391.00
CellOracle out centrality 365.00
CellOracle in centrality 455.00
CellOracle betweenness centrality304.00
CellOracle closeness centrality 351.00
CellOracle eigenvector centrality392.00
DE myAUC rank 999.00
DE pct diff rank 999.00
DE avg diff rank 999.00
Expressed TFs permutation 729.58
In [313]:
options(repr.plot.width=12, repr.plot.height=8)
ggplot(toplt, aes(x=reorder(Methods, R50, decreasing = TRUE),  y=R50)) + geom_point(size=4)+ 
  labs(title="Epidermis-specific TF Prioritization Performance (R50)",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [319]:
toplt <- data.frame(Methods=factor(c(rep("GeneSys",6), rep("CellOracle",6), rep("DE",3), "Expressed TFs permutation"), 
                                   levels=c("DE","Expressed TFs permutation", "CellOracle", "GeneSys")), R50=toplt$R50)

options(repr.plot.width=9.5, repr.plot.height=6)
ggplot(toplt, aes(x=Methods, y=R50))+
  geom_boxplot(width=0.3)+ 
  labs(title="Epidermis-specific TF Prioritization Performance",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()

R50 for celltype specific¶

Xylem¶

In [330]:
gsgo <- read.csv("./Gold_Standard_Root_TF_StringDB.csv", header=TRUE)
gsgo <- gsgo[which(gsgo[,7]=="Yes"),]
gsgo$preferredName
gsgo <- gsgo$GeneID
  1. 'APL'
  2. 'ATHB-8'
  3. 'BHLH48'
  4. 'ET2'
  5. 'KNAT7'
  6. 'LBD18'
  7. 'LBD30'
  8. 'LHW'
  9. 'MYB20'
  10. 'MYB32'
  11. 'MYB43'
  12. 'MYB46'
  13. 'MYB52'
  14. 'MYB61'
  15. 'MYB7'
  16. 'MYB83'
  17. 'MYB85'
  18. 'NAC005'
  19. 'NAC007'
  20. 'NAC010'
  21. 'NAC026'
  22. 'NAC030'
  23. 'NAC037'
  24. 'NAC043'
  25. 'NAC076'
  26. 'NAC083'
  27. 'NAC101'
  28. 'NAC104'
  29. 'NAC105'
  30. 'REV'
In [331]:
length(gsgo)
r50 <- 15
30
In [332]:
## Define genesys
run_r50_genesys <- function(x){
    genesys$ct_score <- min_max_normalize(rowSums(apply(genesys[,grep(paste0('xyl_',x),colnames(genesys))],2,as.numeric)))
    genesys$combined_score <- genesys$ct_score
    
    genesys <- genesys %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(genesys))){
        if (genesys$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [333]:
## Define celloracle
dat <- rbind(xyl)
## Remove those not present in the dataset
dat <- dat[!is.na(match(dat$X,exptf)),]
dat <- dat %>% group_by(cluster) %>% reframe(GeneID=X,degree_centrality = min_max_normalize(degree_centrality_all), 
                                  in_centrality = min_max_normalize(degree_centrality_in), 
                                  out_centrality = min_max_normalize(degree_centrality_out),
                                 betweenness_centrality = min_max_normalize(betweenness_centrality),
                                 closeness_centrality = min_max_normalize(closeness_centrality),
                                 eigenvector_centrality = min_max_normalize(eigenvector_centrality))
dat <- dat %>% group_by(GeneID) %>% reframe(degree_centrality = sum(degree_centrality), 
                                  in_centrality = sum(in_centrality), 
                                  out_centrality = sum(out_centrality),
                                 betweenness_centrality = sum(betweenness_centrality),
                                 closeness_centrality = sum(closeness_centrality),
                                 eigenvector_centrality = sum(eigenvector_centrality))
dat <- cbind(dat[,1],apply(dat[,2:7],2,min_max_normalize))

celloracle <- dat

run_r50_celloracle <- function(x){
    celloracle$combined_score <- celloracle[,grep(x,colnames(celloracle))]
    celloracle <- celloracle %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(celloracle))){
        if (celloracle$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [334]:
## Define DE
de <- read.csv("Root_Atlas_DE_Gene_List.csv")
de <- de %>% filter(celltype=="Xylem")
## Remove those not present in the dataset
de <- de[!is.na(match(de$gene.ID,exptf)),]
dat <- de %>% group_by(gene.ID) %>% reframe(combined_rank = mean(combined_rank),myAUC_rank = mean(myAUC_rank),pct.diff_rank = mean(pct.diff_rank),avg_diff_rank = mean(avg_diff_rank))
dat <- dat %>% arrange(combined_rank)
colnames(dat) <- c("GeneID","combined_rank","myAUC_rank","pct.diff_rank","avg_diff_rank")
de <- dat
run_r50_de <- function(x){
    de$combined_score <- de[,grep(x,colnames(de))]
    de <- de %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(de))){
        if (de$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [335]:
## Expressed TFs permutation
R50_permutation <- c()
for (j in 1:1000){
ran <- sample(exptf, length(exptf), replace=FALSE)
count <- 0
for (i in seq(length(ran))){
    if (ran[i] %in% gsgo){
        count <- count +1
        if (count == r50){
            R50_permutation <- c(R50_permutation,i)
            break
        }
    }
}
}
In [336]:
toplt <- data.frame(Methods=c("GeneSys degree centrality", "GeneSys out centrality", "GeneSys in centrality", "GeneSys betweenness centrality", 
                 "GeneSys closeness centrality", "GeneSys eigenvector centrality","CellOracle degree centrality", "CellOracle out centrality", 
                 "CellOracle in centrality", "CellOracle betweenness centrality", "CellOracle closeness centrality", "CellOracle eigenvector centrality",
                 "DE myAUC rank", "DE pct diff rank", "DE avg diff rank", "Expressed TFs permutation"),
           R50=c(run_r50_genesys('degree_centrality'),run_r50_genesys('out_centrality'),run_r50_genesys('in_centrality'),
                 run_r50_genesys('betweenness_centrality'),run_r50_genesys('closeness_centrality'),run_r50_genesys('eigenvector_centrality'),
                 run_r50_celloracle('degree_centrality'),run_r50_celloracle('out_centrality'),run_r50_celloracle('in_centrality'),
                 run_r50_celloracle('betweenness_centrality'),run_r50_celloracle('closeness_centrality'),run_r50_celloracle('eigenvector_centrality'),
                 run_r50_de('myAUC_rank'),run_r50_de('pct.diff_rank'),run_r50_de('avg_diff_rank'), mean(R50_permutation)))
In [337]:
toplt
A data.frame: 16 x 2
MethodsR50
<chr><dbl>
GeneSys degree centrality 30.000
GeneSys out centrality 65.000
GeneSys in centrality 27.000
GeneSys betweenness centrality 54.000
GeneSys closeness centrality 47.000
GeneSys eigenvector centrality 37.000
CellOracle degree centrality 90.000
CellOracle out centrality 88.000
CellOracle in centrality 65.000
CellOracle betweenness centrality 50.000
CellOracle closeness centrality 135.000
CellOracle eigenvector centrality 62.000
DE myAUC rank 130.000
DE pct diff rank 133.000
DE avg diff rank 108.000
Expressed TFs permutation 725.408
In [338]:
options(repr.plot.width=12, repr.plot.height=8)
ggplot(toplt, aes(x=reorder(Methods, R50, decreasing = TRUE),  y=R50)) + geom_point(size=4)+ 
  labs(title="Xylem-specific TF Prioritization Performance (R50)",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [340]:
toplt <- data.frame(Methods=factor(c(rep("GeneSys",6), rep("CellOracle",6), rep("DE",3), "Expressed TFs permutation"), 
                                   levels=c("Expressed TFs permutation","DE", "CellOracle", "GeneSys")), R50=toplt$R50)

options(repr.plot.width=9.5, repr.plot.height=6)
ggplot(toplt, aes(x=Methods, y=R50))+
  geom_boxplot(width=0.3)+ 
  labs(title="Xylem-specific TF Prioritization Performance",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()

Trichoblast¶

In [341]:
gsgo <- read.csv("./Gold_Standard_Root_TF_StringDB.csv", header=TRUE)
gsgo <- gsgo[which(gsgo[,8]=="Yes"),]
gsgo$preferredName
gsgo <- gsgo$GeneID
  1. 'AL6'
  2. 'ANL2'
  3. 'BHLH12'
  4. 'BHLH2'
  5. 'BHLH32'
  6. 'BHLH54'
  7. 'BHLH66'
  8. 'BHLH69'
  9. 'BHLH82'
  10. 'BHLH83'
  11. 'BHLH85'
  12. 'BHLH86'
  13. 'CPC'
  14. 'E2FB'
  15. 'ETC1'
  16. 'GALT2'
  17. 'GIS3'
  18. 'GL2'
  19. 'GL3'
  20. 'GTL1'
  21. 'HDG11'
  22. 'HDG12'
  23. 'HDG2'
  24. 'MAMYB'
  25. 'MYB23'
  26. 'MYB86'
  27. 'RBR1'
  28. 'SCL22'
  29. 'SCL27'
  30. 'SCL6'
  31. 'TRY'
  32. 'TTG1'
  33. 'WER'
  34. 'ZFP5'
  35. 'ZFP6'
  36. 'ZFP8'
In [342]:
length(gsgo)
r50 <- 18
36
In [343]:
## Define genesys
run_r50_genesys <- function(x){
    genesys$ct_score <- min_max_normalize(rowSums(apply(genesys[,grep(paste0('^tri_',x),colnames(genesys))],2,as.numeric)))
    genesys$combined_score <- genesys$ct_score
    
    genesys <- genesys %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(genesys))){
        if (genesys$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [344]:
## Define celloracle
dat <- rbind(tri)
## Remove those not present in the dataset
dat <- dat[!is.na(match(dat$X,exptf)),]
dat <- dat %>% group_by(cluster) %>% reframe(GeneID=X,degree_centrality = min_max_normalize(degree_centrality_all), 
                                  in_centrality = min_max_normalize(degree_centrality_in), 
                                  out_centrality = min_max_normalize(degree_centrality_out),
                                 betweenness_centrality = min_max_normalize(betweenness_centrality),
                                 closeness_centrality = min_max_normalize(closeness_centrality),
                                 eigenvector_centrality = min_max_normalize(eigenvector_centrality))
dat <- dat %>% group_by(GeneID) %>% reframe(degree_centrality = sum(degree_centrality), 
                                  in_centrality = sum(in_centrality), 
                                  out_centrality = sum(out_centrality),
                                 betweenness_centrality = sum(betweenness_centrality),
                                 closeness_centrality = sum(closeness_centrality),
                                 eigenvector_centrality = sum(eigenvector_centrality))
dat <- cbind(dat[,1],apply(dat[,2:7],2,min_max_normalize))

celloracle <- dat

run_r50_celloracle <- function(x){
    celloracle$combined_score <- celloracle[,grep(x,colnames(celloracle))]
    celloracle <- celloracle %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(celloracle))){
        if (celloracle$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [345]:
## Define DE
de <- read.csv("Root_Atlas_DE_Gene_List.csv")
de <- de %>% filter(celltype=="Trichoblast")
## Remove those not present in the dataset
de <- de[!is.na(match(de$gene.ID,exptf)),]
dat <- de %>% group_by(gene.ID) %>% reframe(combined_rank = mean(combined_rank),myAUC_rank = mean(myAUC_rank),pct.diff_rank = mean(pct.diff_rank),avg_diff_rank = mean(avg_diff_rank))
dat <- dat %>% arrange(combined_rank)
colnames(dat) <- c("GeneID","combined_rank","myAUC_rank","pct.diff_rank","avg_diff_rank")
de <- dat
run_r50_de <- function(x){
    de$combined_score <- de[,grep(x,colnames(de))]
    de <- de %>% arrange(desc(combined_score))
    count <- 0
    for (i in seq(nrow(de))){
        if (de$GeneID[i] %in% gsgo){
            count <- count +1
            if (count == r50){
                return(i)
                break
            }
        }
    }
}
In [346]:
## Expressed TFs permutation
R50_permutation <- c()
for (j in 1:1000){
ran <- sample(exptf, length(exptf), replace=FALSE)
count <- 0
for (i in seq(length(ran))){
    if (ran[i] %in% gsgo){
        count <- count +1
        if (count == r50){
            R50_permutation <- c(R50_permutation,i)
            break
        }
    }
}
}
In [347]:
toplt <- data.frame(Methods=c("GeneSys degree centrality", "GeneSys out centrality", "GeneSys in centrality", "GeneSys betweenness centrality", 
                 "GeneSys closeness centrality", "GeneSys eigenvector centrality","CellOracle degree centrality", "CellOracle out centrality", 
                 "CellOracle in centrality", "CellOracle betweenness centrality", "CellOracle closeness centrality", "CellOracle eigenvector centrality",
                 "DE myAUC rank", "DE pct diff rank", "DE avg diff rank", "Expressed TFs permutation"),
           R50=c(run_r50_genesys('degree_centrality'),run_r50_genesys('out_centrality'),run_r50_genesys('in_centrality'),
                 run_r50_genesys('betweenness_centrality'),run_r50_genesys('closeness_centrality'),run_r50_genesys('eigenvector_centrality'),
                 run_r50_celloracle('degree_centrality'),run_r50_celloracle('out_centrality'),run_r50_celloracle('in_centrality'),
                 run_r50_celloracle('betweenness_centrality'),run_r50_celloracle('closeness_centrality'),run_r50_celloracle('eigenvector_centrality'),
                 999,999,999, mean(R50_permutation)))
In [348]:
toplt
A data.frame: 16 x 2
MethodsR50
<chr><dbl>
GeneSys degree centrality 267.000
GeneSys out centrality 244.000
GeneSys in centrality 228.000
GeneSys betweenness centrality 325.000
GeneSys closeness centrality 398.000
GeneSys eigenvector centrality 278.000
CellOracle degree centrality 508.000
CellOracle out centrality 476.000
CellOracle in centrality 425.000
CellOracle betweenness centrality339.000
CellOracle closeness centrality 449.000
CellOracle eigenvector centrality501.000
DE myAUC rank 999.000
DE pct diff rank 999.000
DE avg diff rank 999.000
Expressed TFs permutation 723.912
In [349]:
options(repr.plot.width=12, repr.plot.height=8)
ggplot(toplt, aes(x=reorder(Methods, R50, decreasing = TRUE),  y=R50)) + geom_point(size=4)+ 
  labs(title="Trichoblast-specific TF Prioritization Performance (R50)",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [350]:
toplt <- data.frame(Methods=factor(c(rep("GeneSys",6), rep("CellOracle",6), rep("DE",3), "Expressed TFs permutation"), 
                                   levels=c("DE","Expressed TFs permutation", "CellOracle", "GeneSys")), R50=toplt$R50)

options(repr.plot.width=9.5, repr.plot.height=6)
ggplot(toplt, aes(x=Methods, y=R50))+
  geom_boxplot(width=0.3)+ 
  labs(title="Trichoblast-specific TF Prioritization Performance",x="", y = "R50")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()

Plotting¶

In [41]:
dat <- genesys
In [42]:
plot_heatmap <- function(gene, centrality){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep(centrality,colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1) , show_heatmap_legend = TRUE, name = paste0(gene,"\n","weighted","\n","network","\n","centrality"),
            col = col_fun, column_title = paste0(str_split_i(centrality,"_",1),"\n",str_split_i(centrality,"_",2)), column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(sub), rot = 60, location = unit(1, "npc"), just = "right"))
       )
}
In [43]:
plot_heatmap2 <- function(gene, centrality){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep(centrality,colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1) , show_heatmap_legend = FALSE,
            col = col_fun, column_title = "out degree \n centrality", column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(sub), rot = 60, location = unit(1, "npc"), just = "right"))
       )
}
In [44]:
plot_heatmap3 <- function(gene, centrality){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep(centrality,colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1), name = paste0("unweighted","\n","network","\n","centrality"),
            col = col_fun, column_title = "in degree \n centrality", column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(sub), rot = 60, location = unit(1, "npc"), just = "right"))
       )
}
In [45]:
plot_all_centrality <- function(gene){
    options(repr.plot.width=10, repr.plot.height=6)
    plot_heatmap(gene,"betweenness_centrality") + plot_heatmap2(gene,"out_centrality") + plot_heatmap3(gene,"in_centrality")
}
In [46]:
plot_all_centrality("TTG1")
In [47]:
plot_all_centrality("CPC")
In [1212]:
plot_all_centrality("SHR")
In [1213]:
plot_all_centrality("SCR")
In [1214]:
plot_all_centrality("BLJ")
In [1215]:
plot_all_centrality("JKD")
In [1216]:
plot_all_centrality("MYB36")
In [1217]:
plot_all_centrality("RVN")
In [1218]:
plot_all_centrality("MGP")
In [1219]:
plot_all_centrality("NUC")
In [1220]:
plot_all_centrality("WER")
In [1221]:
## HAT7
plot_all_centrality("HAT7")
In [1222]:
## GATA10
plot_all_centrality("GATA10")
In [1223]:
## GATA11
plot_all_centrality("GATA11")
In [1224]:
plot_all_centrality("AN3")
In [1225]:
plot_all_centrality("GL2")
In [192]:
plot_all_centrality <- function(gene){
    options(repr.plot.width=8, repr.plot.height=4)
    plot_heatmap(gene,"betweenness_centrality") + plot_heatmap2(gene,"out_centrality") + plot_heatmap3(gene,"in_centrality")
}
In [193]:
plot_all_centrality("SHR")
In [235]:
plot_all_centrality("WER")

Rank by betweenness centrality, out-degree centrality, in-degree centrality and degree centrality¶

In [49]:
plot_bc <- function(gene){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep("betweenness_centrality",colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1) , show_heatmap_legend = FALSE,
            col = col_fun, column_title = gene, column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(sub), rot = 60, location = unit(1, "npc"), just = "right"))
       )
}
In [50]:
plot_oc <- function(gene){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep("out_centrality",colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1) , show_heatmap_legend = FALSE,
            col = col_fun, column_title = gene, column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(sub), rot = 60, location = unit(1, "npc"), just = "right"))
       )
}
In [51]:
plot_ic <- function(gene){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep("in_centrality",colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1) , show_heatmap_legend = FALSE,
            col = col_fun, column_title = gene, column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(sub), rot = 60, location = unit(1, "npc"), just = "right"))
       )
}
In [52]:
plot_dc <- function(gene){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep("degree_centrality",colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1) , show_heatmap_legend = FALSE,
            col = col_fun, column_title = gene, column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, bottom_annotation = HeatmapAnnotation(
            text = anno_text(colnames(sub), rot = 60, location = unit(1, "npc"), just = "right"))
       )
}
In [53]:
plot_blank <- function(gene){
    sub <- as.numeric(t(dat[which(dat$TF==gene),grep("betweenness_centrality",colnames(dat))]))
    sub <- as.matrix(cbind(sub[1:10],sub[11:20],sub[21:30],sub[31:40],sub[41:50]))
    ## Cell types
    rownames(sub) <- c('Atrichoblast','Trichoblast','LRC','Cortex','Endodermis','Pericycle','Procambium','Xylem','Phloem','Columella')
    ## Transition
    colnames(sub) <- c('t0-t1', 't1-t3', 't3-t5', 't5-t7', 't7-t9')
    # Reorder rows
    sub <- sub[c(8,9,7,6,5,4,2,1,3,10),]
    col_fun = colorRamp2(c(0, 0.001, 1), c('white',"white", "white"))

    Heatmap(sub, rect_gp = gpar(col = "white", lwd = 1) , show_heatmap_legend = FALSE,
            col = col_fun, column_title_gp = gpar(fontsize = 12, fontface = "bold"), 
            cluster_rows = FALSE, cluster_columns = FALSE,
            show_column_names = FALSE, show_row_names = TRUE
       )
}
In [54]:
# Combine the top three centralies 
sub <- dat[,grep("betweenness_centrality|in_centrality|out_centrality",colnames(dat))]
sub <- as.data.frame(sapply(sub, as.numeric))
rownames(sub) <- dat$TF
In [55]:
head(sub)
A data.frame: 6 x 150
atri_out_centrality_1atri_in_centrality_1atri_betweenness_centrality_1tri_out_centrality_1tri_in_centrality_1tri_betweenness_centrality_1lrc_out_centrality_1lrc_in_centrality_1lrc_betweenness_centrality_1cor_out_centrality_1...pro_betweenness_centrality_5xyl_out_centrality_5xyl_in_centrality_5xyl_betweenness_centrality_5phl_out_centrality_5phl_in_centrality_5phl_betweenness_centrality_5col_out_centrality_5col_in_centrality_5col_betweenness_centrality_5
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>...<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
BZIP90.00000000.00000000.00000000.000000000.00000000.00000000.00000000.00000000.00000000.000000000...1.00000000000.74292450.889281510.088461680.000000000.0000000000
AT3G434300.00000000.00000000.00000000.000000000.00000000.00000000.00000000.00000000.00000000.002298851...0.32167760000.14504720.068315670.056583370.000000000.0000000000
HAT70.00000000.00000000.00000000.038135590.32743360.92048560.00000000.00000000.00000000.052873563...0.00000000000.00000000.000000000.000000000.000000000.0000000000
PLT10.97087380.60248450.97631350.000000000.00000000.00000000.34520551.00000000.97658950.696551724...0.00000000000.00000000.000000000.000000000.075630250.0034246580
MYB360.00000000.00000000.00000000.000000000.00000000.00000000.00000000.00000000.00000000.050574713...0.00000000000.00000000.000000000.000000000.000000000.0000000000
GATA20.82847900.80124220.99859490.936440680.44247790.94163420.67397260.72357720.88746130.533333333...0.00000000000.00000000.000000000.000000000.000000000.0000000000
In [56]:
bc_rank <- data.frame(all=rowSums(sub),atri=rowSums(sub[,grep("^atri_",colnames(sub))]),tri=rowSums(sub[,grep("^tri_",colnames(sub))])
                     ,cor=rowSums(sub[,grep("^cor_",colnames(sub))]),end=rowSums(sub[,grep("^end_",colnames(sub))])
                     ,per=rowSums(sub[,grep("^per_",colnames(sub))]),pro=rowSums(sub[,grep("^pro_",colnames(sub))])
                     ,xyl=rowSums(sub[,grep("^xyl_",colnames(sub))]),phl=rowSums(sub[,grep("^phl_",colnames(sub))])
                     ,lrc=rowSums(sub[,grep("^lrc_",colnames(sub))]),col=rowSums(sub[,grep("^col_",colnames(sub))]))
In [57]:
bc_rank$GeneID <- wanted_TFs$GeneID[match(rownames(bc_rank),wanted_TFs$Name)]
In [66]:
head(bc_rank)
A data.frame: 6 x 12
allatritricorendperproxylphllrccolGeneID
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr>
BZIP931.714470.0000000.0000000.000000000 0.0066985658.0463557611.944303650.0362276411.6808854 0.0000000.000000AT5G24800
AT3G4343029.501340.0000000.0000000.005375774 0.0066985658.9241430510.033691103.50786160 7.0235724 0.0000000.000000AT3G43430
HAT732.324157.0540655.6263998.996598123 4.9103152710.02122024 0.000000000.00000000 0.0000000 4.4330601.282490AT5G15150
PLT122.943423.5738060.0000002.592117793 1.9586050760.00000000 0.000000000.00000000 0.0000000 9.2834435.535445AT3G20840
MYB3619.513090.0000000.0000003.96557284511.6482268733.89929436 0.000000000.00000000 0.0000000 0.0000000.000000AT5G57620
GATA230.677477.8534135.5331612.445113736 1.3825930660.50181676 0.089676060.05936252 0.462778810.4048631.944695AT2G45050

Atrichoblast¶

In [70]:
atri_rank <- bc_rank[which(bc_rank$atri*2 > bc_rank$all),]%>% arrange(desc(atri))
atri_rank$GeneName <- rownames(atri_rank)
In [71]:
atri_rank
A data.frame: 23 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
TTG212.34741707.662132070.7199543880.0705570290.0000000000.000000000.0000000000.000000000.000000003.894773470.000000000AT2G37260TTG2
GL214.24193287.278378451.6264469140.1810437610.0147874810.000000000.0000000000.000000000.000000005.141276220.000000000AT1G79840GL2
ARR6 7.71770754.111800160.9558059990.2128091530.0631409220.148391270.3133121380.266565380.213096631.220457260.212328572AT5G62920ARR6
IAA14 7.16508243.728778401.7698751460.2089280160.0000000000.158556650.1606799030.283071860.014238760.615223350.225730302AT4G14550IAA14
CRF4 6.22762883.358774820.5244292840.5856719720.2183145630.039429000.0000000000.000000000.000000001.464157870.036851244AT4G27950CRF4
FIT 5.03401533.269609150.6070388140.0000000000.0273046070.000000000.0000000000.000000000.000000001.060852600.069210177AT2G28160FIT
OFP18 3.31190452.814387290.2341873540.0000000000.0000000000.000000000.0000000000.000000000.000000000.263329830.000000000AT3G52540OFP18
HB17 3.88711102.024386290.3444837740.0813486550.0027720680.000000000.0000000001.377708010.022789120.033623090.000000000AT2G01430HB17
KAN 2.86943901.828198120.2936766990.1987267900.0038277510.000000000.0000000000.000000000.000000000.454940390.090069225AT5G16560KAN
HMGB2 2.98699441.648161440.2704996770.3172721830.1755449760.135867650.1890084720.000000000.201793880.011285840.037560325AT1G20693HMGB2
BNQ3 2.70480521.630988820.1421953610.0105840290.0000000000.000000000.0000000000.000000000.000000000.889481450.031555541AT3G47710BNQ3
RMR1 1.87029331.478934130.0069418570.0543301390.1204518750.022174950.0744349940.000000000.053938530.016845290.042241552AT5G66160RMR1
NAC003 2.53570601.464801410.4867669580.3616275760.0481252750.057016590.0640061410.029692110.000000000.000000000.023669946AT1G02220NAC003
LBD25 2.63718401.400219810.0000000000.9424677520.1677084730.072991610.0537963930.000000000.000000000.000000000.000000000AT3G27650LBD25
NAC044 2.45603361.296012710.2229857770.2260527250.1220992210.553010550.0000000000.000000000.000000000.035872590.000000000AT3G01600NAC044
AIP2 2.33484801.249663540.2000404110.1170927710.1472884890.060923710.1916525480.000000000.235512280.072673860.060000383AT5G20910AIP2
HB24 1.60396121.063436660.2985451050.0000000000.0000000000.023119510.1110680820.000000000.000000000.107791890.000000000AT2G18350HB24
GIS3 0.61333670.515804870.0200364300.0000000000.0000000000.000000000.0000000000.000000000.000000000.077495440.000000000AT1G68360GIS3
AT2G18850 0.61610740.321527960.0390730460.0952077810.0517288510.052155830.0000000000.000000000.000000000.034558790.021855148AT2G18850AT2G18850
AT1G11490 0.45791650.248465110.1861093920.0000000000.0000000000.000000000.0000000000.000000000.000000000.023342040.000000000AT1G11490AT1G11490
NLP4 0.30715360.209007790.0504546290.0000000000.0028805840.000000000.0000000000.000000000.025108290.010605190.009097158AT1G20640NLP4
VFP5 0.24848590.130040920.0000000000.0607250220.0000000000.026109510.0075477680.000000000.000000000.012503980.011558680AT5G05550VFP5
LBD26 0.10234200.054731780.0265345310.0081466730.0000000000.000000000.0000000000.000000000.000000000.007855310.005073673AT3G27940LBD26
In [217]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(atri_rank[1:10,], aes(x=reorder(GeneName, atri, decreasing = FALSE),  y=atri)) + geom_point(size=4)+ 
  labs(title="Atrichoblast-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [61]:
write.csv(atri_rank,"Atrichoblast_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [172]:
tf_rank <- atri_rank %>% rownames(.)
In [173]:
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [174]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [65]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Atrichoblast ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))
In [209]:
q1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3])
q2 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3])
q3 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3])

q1 <- grid.grabExpr(draw(q1))
q2 <- grid.grabExpr(draw(q2))
q3 <- grid.grabExpr(draw(q3))

options(repr.plot.width=6, repr.plot.height=8)
plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q1,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q2,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q3,nrow=2,rel_heights = c(1, 8)),nrow=3)

Trichoblast¶

In [80]:
tri_rank <- bc_rank[which(bc_rank$tri*2 > bc_rank$all),]%>% arrange(desc(tri))
tri_rank$GeneName <- rownames(tri_rank)
In [81]:
tri_rank
A data.frame: 21 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
AT3G5337010.513324691.705101358.053050240.0000000000.0000000000.1042630600.1878016940.397375710.0657326460.0000000000.000000000AT3G53370AT3G53370
RHD611.225738263.859160087.366578180.0000000000.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.000000000AT1G66470RHD6
WRKY65 8.655629621.386683484.363619190.0116975060.1977020820.0000000000.0000000000.000000000.0000000001.6132327551.082694618AT1G29280WRKY65
AT2G37120 6.293577750.937263693.762739320.1049563330.1777236790.1013581530.0076516720.809971450.1926709740.1992424660.000000000AT2G37120AT2G37120
tny 4.877671630.029226572.682234002.1046743370.0213498600.0000000000.0401868680.000000000.0000000000.0000000000.000000000AT5G25810tny
WRKY70 3.171282340.672190421.806459030.0000000000.0000000000.0691301620.0621030320.000000000.0272108840.2024669270.331721889AT3G56400WRKY70
AT4G39160 1.716523750.237540521.356050000.0000000000.0135192560.0509891550.0021598370.000000000.0123323910.0057356050.038196982AT4G39160AT4G39160
GL3 1.112116350.272412120.750791770.0889124670.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.000000000AT5G41315GL3
RL6 0.656802220.057128000.553974740.0000000000.0000000000.0000000000.0000000000.000000000.0152231530.0304763280.000000000AT1G75250RL6
SUVR4 0.532414180.050815690.383158170.0061527090.0000000000.0000000000.0000000000.000000000.0000000000.0303931400.061894477AT3G04380SUVR4
bZIP23 0.647508550.015263860.324460920.0544297080.0165915700.0390913460.0254901650.000000000.1402272890.0172068160.014746876AT2G16770bZIP23
AT2G37000 0.349815980.063026390.246512670.0084526970.0000000000.0289493270.0028748910.000000000.0000000000.0000000000.000000000AT2G37000AT2G37000
BPC5 0.192541100.016050570.176490530.0000000000.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.000000000AT4G38910BPC5
FRF1 0.184515130.000000000.104542070.0000000000.0299629710.0070965620.0110113250.000000000.0055588870.0071054680.019237845AT3G59470FRF1
ASG3 0.147837540.021766210.098744210.0000000000.0028708130.0048889470.0161199240.000000000.0000000000.0000000000.003447441AT2G44980ASG3
AT2G19380 0.110593720.000000000.070068880.0000000000.0038277510.0000000000.0041993940.000000000.0199819050.0000000000.012515794AT2G19380AT2G19380
AGL87 0.075814570.000000000.061247720.0145668500.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.000000000AT1G22590AGL87
AT5G06420 0.092321810.000000000.049058720.0000000000.0221962900.0035283440.0021598370.013179610.0021990110.0000000000.000000000AT5G06420AT5G06420
PIL6 0.029848510.000000000.029848510.0000000000.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.000000000AT3G59060PIL6
SUVH2 0.043086730.000000000.024965550.0000000000.0038277510.0121335890.0021598370.000000000.0000000000.0000000000.000000000AT2G33290SUVH2
LDL2 0.029826660.000000000.020475010.0000000000.0038277510.0000000000.0055238980.000000000.0000000000.0000000000.000000000AT3G13682LDL2
In [219]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(tri_rank[1:10,], aes(x=reorder(GeneName, tri, decreasing = FALSE),  y=tri)) + geom_point(size=4)+ 
  labs(title="Trichoblast-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [1245]:
write.csv(tri_rank,"Trichoblast_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [210]:
## Top20 only
tf_rank <- tri_rank %>% rownames(.)
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [1247]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [1248]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Trichoblast ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))
In [211]:
q1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3])
q2 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3])
q3 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3])

q1 <- grid.grabExpr(draw(q1))
q2 <- grid.grabExpr(draw(q2))
q3 <- grid.grabExpr(draw(q3))

options(repr.plot.width=6, repr.plot.height=8)
plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q1,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q2,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q3,nrow=2,rel_heights = c(1, 8)),nrow=3)

Cortex¶

In [83]:
cor_rank <- bc_rank[which(bc_rank$cor*2 > bc_rank$all),]%>% arrange(desc(cor))
cor_rank$GeneName <- rownames(cor_rank)
In [84]:
cor_rank
A data.frame: 15 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
JKD8.23960850.00000000.00000005.3588943912.7200613210.0000000000.00000000000.0000000000.000000000.160652759AT5G03150JKD
AT1G057106.12681770.00000000.00000004.4144236481.6706307760.0362393550.00552389800.0000000000.000000000.000000000AT1G05710AT1G05710
AT1G722104.39787020.00000000.00000003.3260768490.9100605830.0023601190.00000000000.0000000000.000000000.159372610AT1G72210AT1G72210
AT2G383003.11037560.00000000.00000002.5859568000.4134222490.0000000000.00000000000.0000000000.000000000.110996559AT2G38300AT2G38300
JAZ62.03716420.14522260.06783341.5228006050.1755644320.0559746770.04836760800.0045561130.000000000.016844717AT1G72450JAZ6
IDD41.74005020.00000000.00000001.3481737250.3793319100.0000000000.00000000000.0000000000.000000000.012544599AT2G02080IDD4
LRP12.24339050.00000000.00000001.3474368020.2647057770.3159987380.27526164800.0000000000.000000000.039987577AT5G12330LRP1
AT2G426601.53495200.00000000.00000001.3372057690.0000000000.0000000000.00000000000.0000000000.000000000.197746268AT2G42660AT2G42660
ERF151.83184050.00000000.00000000.9300328570.8972591030.0000000000.00000000000.0000000000.000000000.004548579AT2G31230ERF15
GLK21.09714570.00000000.00000000.7911325830.0028708130.0784012080.16921112100.0555300080.000000000.000000000AT5G44190GLK2
ETR21.01275130.12357380.00000000.5439548900.1596450600.0000000000.00287489100.0000000000.024892940.157809818AT3G23150ETR2
AT3G189600.17809730.00000000.00000000.1570466860.0000000000.0052026250.00000000000.0000000000.000000000.015848014AT3G18960AT3G18960
AT2G468100.19686590.00000000.00000000.1096813700.0173779110.0000000000.00790961900.0000000000.000000000.061896990AT2G46810AT2G46810
HSFC10.19351380.00000000.00000000.1011847920.0000000000.0496109870.02232147400.0000000000.000000000.020396593AT3G24520HSFC1
AT3G044500.01250230.00000000.00000000.0099734750.0000000000.0025288280.00000000000.0000000000.000000000.000000000AT3G04450AT3G04450
In [146]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(cor_rank[1:10,], aes(x=reorder(GeneName, cor, decreasing = FALSE),  y=cor)) + geom_point(size=4)+ 
  labs(title="Cortex-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [1251]:
write.csv(cor_rank,"Cortex_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [1252]:
tf_rank <- cor_rank %>% rownames(.)
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
#p4 <- plot_bc(tf_rank[16]) + plot_blank("Empty")+ plot_blank("Empty") + plot_blank("Empty")+ plot_blank("Empty")

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
#p8 <- plot_oc(tf_rank[16]) + plot_blank("Empty")+ plot_blank("Empty") + plot_blank("Empty")+ plot_blank("Empty")

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
#p12 <- plot_ic(tf_rank[16]) + plot_blank("Empty")+ plot_blank("Empty") + plot_blank("Empty")+ plot_blank("Empty")
In [1253]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
#p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
#p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
#p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [1254]:
options(repr.plot.width=24, repr.plot.height=9)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Cortex ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,nrow=3),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,nrow=3),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,nrow=3),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))
In [212]:
## Top 10 only
tf_rank <- cor_rank %>% rownames(.)
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
#p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
#p4 <- plot_bc(tf_rank[16]) + plot_blank("Empty")+ plot_blank("Empty") + plot_blank("Empty")+ plot_blank("Empty")

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
#p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
#p8 <- plot_oc(tf_rank[16]) + plot_blank("Empty")+ plot_blank("Empty") + plot_blank("Empty")+ plot_blank("Empty")

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
#p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
#p12 <- plot_ic(tf_rank[16]) + plot_blank("Empty")+ plot_blank("Empty") + plot_blank("Empty")+ plot_blank("Empty")
In [164]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
#p3 <- grid.grabExpr(draw(p3))
#p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
#p7 <- grid.grabExpr(draw(p7))
#p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
#p11 <- grid.grabExpr(draw(p11))
#p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [165]:
options(repr.plot.width=24, repr.plot.height=5)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Cortex ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,nrow=2),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,nrow=2),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,nrow=2),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))
In [213]:
q1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3])
q2 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3])
q3 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3])

q1 <- grid.grabExpr(draw(q1))
q2 <- grid.grabExpr(draw(q2))
q3 <- grid.grabExpr(draw(q3))

options(repr.plot.width=6, repr.plot.height=8)
plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q1,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q2,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q3,nrow=2,rel_heights = c(1, 8)),nrow=3)

Endodermis¶

In [88]:
end_rank <- bc_rank[which(bc_rank$end*2 > bc_rank$all),]%>% arrange(desc(end))
end_rank$GeneName <- rownames(end_rank)
In [89]:
end_rank
A data.frame: 28 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
MYB3619.513094080.000000000.0000000003.9655728511.648226873.8992943600.0000000000.000000000.0000000000.0000000000.000000000AT5G57620MYB36
MYB7410.579847180.000000000.0000000001.79339769 7.040706071.4327238850.0068484010.306171140.0000000000.0000000000.000000000AT4G05100MYB74
MYB68 7.957386920.000000000.0000000001.46239238 6.211880640.2831139080.0000000000.000000000.0000000000.0000000000.000000000AT5G65790MYB68
SOM 6.915900760.311471190.0000000001.00295479 4.674453990.6471669790.2346693370.000000000.0451844730.0000000000.000000000AT1G03790SOM
RAX2 5.930691250.356441370.0342006661.20469945 3.941137610.3539273680.0000000000.000000000.0000000000.0402847720.000000000AT2G36890RAX2
BLJ 4.399232490.000000000.0000000000.56360296 3.602184490.2334450300.0000000000.000000000.0000000000.0000000000.000000000AT1G14580BLJ
SCR 4.822691150.000000000.0000000001.82554739 2.997143750.0000000000.0000000000.000000000.0000000000.0000000000.000000000AT3G54220SCR
TLP11 4.120253190.000000000.3061728010.05100626 2.525131670.3987767530.4245949410.000000000.4145707650.0000000000.000000000AT5G18680TLP11
bZIP58 1.715829830.000000000.0000000000.00000000 1.571782220.0700089030.0740387080.000000000.0000000000.0000000000.000000000AT1G13600bZIP58
BIB 1.266494460.000000000.0000000000.07143260 1.195061860.0000000000.0000000000.000000000.0000000000.0000000000.000000000AT3G45260BIB
RVN 1.426785960.000000000.0000000000.45433505 0.937838210.0000000000.0000000000.000000000.0000000000.0000000000.034612694AT2G02070RVN
MYB122 1.604879370.000000000.0000000000.59238242 0.935476190.0275007670.0495199960.000000000.0000000000.0000000000.000000000AT1G74080MYB122
AT5G41920 0.940313840.000000000.0000000000.08146738 0.858846460.0000000000.0000000000.000000000.0000000000.0000000000.000000000AT5G41920AT5G41920
AGL42 1.110521580.000000000.0000000000.31676231 0.687843160.0579069830.0480091180.000000000.0000000000.0000000000.000000000AT5G62165AGL42
AT2G43140 0.777223770.000000000.0000000000.10404195 0.673181830.0000000000.0000000000.000000000.0000000000.0000000000.000000000AT2G43140AT2G43140
ERF10 0.863088510.000000000.0000000000.05534925 0.433023290.2603889780.0912572510.023069740.0000000000.0000000000.000000000AT1G03800ERF10
MYB70 0.636847520.038743350.0038706740.10466428 0.344895130.0250119510.0427164180.000000000.0000000000.0224301150.054515598AT2G23290MYB70
TIFY8 0.389236060.000000000.0000000000.00000000 0.272550400.0056470960.0000000000.000000000.0000000000.0747410620.036297497AT4G32570TIFY8
SIGA 0.337950070.000000000.0000000000.03117682 0.253006660.0351580700.0117471630.000000000.0000000000.0000000000.006861356AT1G64860SIGA
AT3G07500 0.188255770.000000000.0000000000.02836428 0.120760170.0391313170.0000000000.000000000.0000000000.0000000000.000000000AT3G07500AT3G07500
ERF73 0.145637080.000000000.0000000000.00000000 0.112942260.0071328120.0083987880.000000000.0000000000.0084226470.008740567AT1G72360ERF73
FAR1 0.204890650.000000000.0000000000.01706306 0.112334730.0286662130.0159272280.000000000.0045561130.0071054680.019237845AT4G15090FAR1
AT4G08455 0.147887780.000000000.0216086500.00000000 0.076885950.0256654490.0191716240.000000000.0045561130.0000000000.000000000AT4G08455AT4G08455
TCP9 0.098860330.000000000.0000000000.00000000 0.053872200.0000000000.0021598370.042828300.0000000000.0000000000.000000000AT2G45680TCP9
AT4G00390 0.069721150.000000000.0000000000.02072502 0.048996120.0000000000.0000000000.000000000.0000000000.0000000000.000000000AT4G00390AT4G00390
AT3G01890 0.075005880.000000000.0302234890.00000000 0.041544970.0000000000.0032374230.000000000.0000000000.0000000000.000000000AT3G01890AT3G01890
AT1G61970 0.070830450.000000000.0000000000.00000000 0.039138110.0047364030.0099491760.000000000.0000000000.0000000000.017006763AT1G61970AT1G61970
NF-YA6 0.049454400.000000000.0000000000.00000000 0.033259700.0117694190.0044252790.000000000.0000000000.0000000000.000000000AT3G14020NF-YA6
In [166]:
options(repr.plot.width=8, repr.plot.height=4)
ggplot(end_rank[1:10,], aes(x=reorder(GeneName, end, decreasing = FALSE),  y=end)) + geom_point(size=4)+ 
  labs(title="Endodermis-specific TF Prioritization",x="", y = "Combined centrality score (betweeness, out and in degree)")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [1257]:
write.csv(end_rank,"Endodermis_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [233]:
tf_rank <- end_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [1259]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [1260]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Endodermis ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))
In [158]:
tf_rank <- end_rank %>% rownames(.)
# Max 10
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
#p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
#p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
#p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
#p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
#p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
#p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [159]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
#p3 <- grid.grabExpr(draw(p3))
#p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
#p7 <- grid.grabExpr(draw(p7))
#p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
#p11 <- grid.grabExpr(draw(p11))
#p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [162]:
options(repr.plot.width=24, repr.plot.height=5)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Endodermis ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,nrow=2),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,nrow=2),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,nrow=2),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))
In [234]:
q1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5]) + plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10]) 
q2 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5]) + plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10]) 
q3 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5]) + plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10]) 

q1 <- grid.grabExpr(draw(q1))
q2 <- grid.grabExpr(draw(q2))
q3 <- grid.grabExpr(draw(q3))

options(repr.plot.width=16, repr.plot.height=8)
plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q1,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q2,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q3,nrow=2,rel_heights = c(1, 8)),nrow=3)

Pericycle¶

In [92]:
per_rank <- bc_rank[which(bc_rank$per*2 > bc_rank$all),]%>% arrange(desc(per))
per_rank$GeneName <- rownames(per_rank)
In [93]:
per_rank
A data.frame: 21 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
MYBC113.638665080.000000000.000000000.453387692.1432050629.006610801.7942876880.000000000.241173830.0000000000.000000000AT2G40970MYBC1
LBD16 7.821356000.000000000.000000000.116586260.1747788774.157066143.0739221490.000000000.299002560.0000000000.000000000AT2G42430LBD16
LBD14 4.167710070.000000000.000000000.057612730.0369960373.838150740.2349505630.000000000.000000000.0000000000.000000000AT2G31310LBD14
SAP 4.263885070.132555430.000000000.242189190.1601355183.622695580.1063093590.000000000.000000000.0000000000.000000000AT5G35770SAP
NUC 5.559068040.000000000.000000000.471899660.0000000003.613822140.6499768030.000000000.819938760.0000000000.003430678AT5G44160NUC
AT3G21330 5.659804610.169127260.000000000.553881950.5656960083.427484310.9436150860.000000000.000000000.0000000000.000000000AT3G21330AT3G21330
IDD11 4.275631030.000000000.000000000.000000000.0000000003.288914960.9867160770.000000000.000000000.0000000000.000000000AT3G13810IDD11
MGP 4.462857530.000000000.000000000.742083030.1332649993.052441230.5350682720.000000000.000000000.0000000000.000000000AT1G03840MGP
AT2G14880 3.667101610.547571960.017511620.120053620.3057006972.381404840.2726849040.000000000.000000000.0221739610.000000000AT2G14880AT2G14880
GATA23 2.888005730.000000000.000000000.000000000.0097358562.134729790.7435400820.000000000.000000000.0000000000.000000000AT5G26930GATA23
AT2G20100 2.965602990.000000000.000000000.023801950.0028708131.669675460.6020561990.667198570.000000000.0000000000.000000000AT2G20100AT2G20100
GRF9 1.103202810.150274380.038510570.018426170.0521977050.592738230.2510557520.000000000.000000000.0000000000.000000000AT2G45480GRF9
NAGS2 0.849340590.045176790.000000000.031476570.0427116320.431340500.1887164450.013190460.076870750.0198574450.000000000AT4G37670NAGS2
LBD29 0.428333140.000000000.000000000.000000000.0000000000.220433520.2078996170.000000000.000000000.0000000000.000000000AT3G58190LBD29
AT1G78930 0.165747370.000000000.000000000.000000000.0038277510.128657940.0275260770.000000000.000000000.0057356050.000000000AT1G78930AT1G78930
BOP2 0.167206250.000000000.000000000.000000000.0000000000.114164510.0530417370.000000000.000000000.0000000000.000000000AT2G41370BOP2
AT4G31060 0.095068510.000000000.000000000.000000000.0000000000.067263570.0063592320.000000000.011344360.0101013480.000000000AT4G31060AT4G31060
AT3G61550 0.104904250.000000000.000000000.044456230.0000000000.057452130.0000000000.000000000.000000000.0029958790.000000000AT3G61550AT3G61550
AT1G24210 0.096311760.000000000.000000000.000000000.0047846890.055366550.0361605160.000000000.000000000.0000000000.000000000AT1G24210AT1G24210
AT1G68030 0.033095470.000000000.000000000.000000000.0038277510.018023140.0112445770.000000000.000000000.0000000000.000000000AT1G68030AT1G68030
PRR3 0.010330830.000000000.000000000.000000000.0000000000.010330830.0000000000.000000000.000000000.0000000000.000000000AT5G60100PRR3
In [222]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(per_rank[1:10,], aes(x=reorder(GeneName, per, decreasing = FALSE),  y=per)) + geom_point(size=4)+ 
  labs(title="Pericycle-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [1263]:
write.csv(per_rank,"Pericycle_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [214]:
tf_rank <- per_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [1265]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [1266]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Pericycle ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))
In [215]:
q1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3])
q2 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3])
q3 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3])

q1 <- grid.grabExpr(draw(q1))
q2 <- grid.grabExpr(draw(q2))
q3 <- grid.grabExpr(draw(q3))

options(repr.plot.width=6, repr.plot.height=8)
plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q1,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q2,nrow=2,rel_heights = c(1, 8))
          ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),q3,nrow=2,rel_heights = c(1, 8)),nrow=3)

Procambium¶

In [96]:
pro_rank <- bc_rank[which(bc_rank$pro*2 > bc_rank$all),]%>% arrange(desc(pro))
pro_rank$GeneName <- rownames(pro_rank)
In [97]:
pro_rank
A data.frame: 14 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
IAA2813.76129750.18941700.0739150730.5325295330.3184909330.712754727.063832650.83919694.0311607650.0000000000.000000000AT5G25890IAA28
ABO311.68565610.21289550.0098097740.0291970800.1112011504.328106486.131411120.17536140.6876735430.0000000000.000000000AT1G66600ABO3
IDD14 6.20866880.00000000.0000000000.0000000000.0701886751.550179773.110490660.32659151.1512182010.0000000000.000000000AT1G68130IDD14
HAT9 5.56981820.00000000.0206641990.0259328100.0114832542.262257023.018496180.00000000.2309847620.0000000000.000000000AT2G22800HAT9
ERF12 4.67786000.00000000.0000000000.0000000000.0153110051.646452122.541698730.00000000.4743981630.0000000000.000000000AT1G28360ERF12
AT1G75490 2.10745930.00000000.0000000000.0000000000.0000000000.136612001.667079410.00000000.3037678860.0000000000.000000000AT1G75490AT1G75490
HB18 1.85197020.00000000.0000000000.0000000000.0047846890.182420391.470257930.00000000.1945072350.0000000000.000000000AT1G70920HB18
AT2G40200 2.07208690.00000000.0000000000.0053757740.0000000000.237312711.428368110.00000000.4010303200.0000000000.000000000AT2G40200AT2G40200
NAC080 1.86835550.00000000.0000000000.0000000000.0066985650.336563911.239112580.00000000.2703480530.0084226470.007209796AT5G07680NAC080
SHY2 1.99050260.00000000.0000000000.0000000000.0000000000.083854651.219825920.20899590.4778260700.0000000000.000000000AT1G04240SHY2
AT4G20970 1.00046530.00000000.0000000000.0000000000.0028708130.235596630.743376370.00000000.0186214790.0000000000.000000000AT4G20970AT4G20970
AT4G27240 0.16087530.00000000.0000000000.0245446510.0000000000.023174680.103274700.00000000.0064625850.0000000000.003418636AT4G27240AT4G27240
FRS12 0.15705770.00000000.0000000000.0000000000.0515181400.013730560.085000510.00000000.0000000000.0000000000.006808466AT5G18960FRS12
DAR6 0.09459770.00000000.0000000000.0000000000.0038277510.000000000.057927930.00000000.0000000000.0000000000.032842019AT5G66620DAR6
In [223]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(pro_rank[1:10,], aes(x=reorder(GeneName, pro, decreasing = FALSE),  y=pro)) + geom_point(size=4)+ 
  labs(title="Procambium-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [1269]:
write.csv(pro_rank,"Procambium_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [1270]:
tf_rank <- pro_rank %>% rownames(.)
# Max 30
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_blank(tf_rank[15])

p4 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p5 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p6 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_blank(tf_rank[15])

p7 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p8 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p9 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_blank(tf_rank[15])
In [1271]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [1272]:
options(repr.plot.width=24, repr.plot.height=10)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Procambium ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,nrow=3),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p4,p5,p6,nrow=3),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p7,p8,p9,nrow=3),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Phloem¶

In [99]:
phl_rank <- bc_rank[which(bc_rank$phl*2 > bc_rank$all),]%>% arrange(desc(phl))
phl_rank$GeneName <- rownames(phl_rank)
In [100]:
phl_rank
A data.frame: 55 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
APL18.62296180.000000000.0000000000.000000000.0000000001.2659076392.4959223541.64153133213.219600510.0000000000.000000000AT1G79430APL
OBP219.55732540.000000000.0000000000.000000000.0000000003.9890143854.4301476780.00000000011.138163360.0000000000.000000000AT1G07640OBP2
AT3G1273010.43104070.000000000.0000000000.000000000.0000000000.9294876400.2119386420.000000000 9.289614400.0000000000.000000000AT3G12730AT3G12730
DAR210.53738640.000000000.0000000000.000000000.0000000000.2025224521.2637789730.465563161 8.605521820.0000000000.000000000AT2G39830DAR2
AT2G03500 9.98534270.000000000.0000000000.000000000.0000000000.7664984830.4373972540.235024550 8.546422430.0000000000.000000000AT2G03500AT2G03500
DOF611.31687090.000000000.0000000000.000000000.0000000000.5812444090.3542126572.053785270 8.327628540.0000000000.000000000AT3G45610DOF6
NAC057 7.27960750.000000000.0000000000.000000000.0000000000.0506597200.1634328430.520738836 6.544776110.0000000000.000000000AT3G17730NAC057
HCA2 7.13642230.000000000.0000000000.000000000.0000000000.1419762340.1389245810.482277297 6.373244200.0000000000.000000000AT5G62940HCA2
AT2G44940 9.11790880.000000000.0000000000.000000000.0608901081.2021729961.5473086850.000000000 6.307537000.0000000000.000000000AT2G44940AT2G44940
AT5G41380 5.65606900.000000000.0000000000.000000000.0000000000.0165918480.0381719090.000000000 5.601305280.0000000000.000000000AT5G41380AT5G41380
AT2G28810 8.75862960.000000000.0000000000.000000000.0000000001.2281654121.9535363450.026359215 5.550568660.0000000000.000000000AT2G28810AT2G28810
AT4G37180 6.47968020.000000000.0139717340.000000000.0418685970.1790180670.2452771210.176848121 5.430931950.0938300480.297934576AT4G37180AT4G37180
NAC020 5.67129960.000000000.0000000000.000000000.0000000000.0724109270.3538971830.000000000 5.244991460.0000000000.000000000AT1G54330NAC020
AT1G49560 6.60569600.293077800.0000000000.343413640.3637036220.0104381530.1436659400.346042646 4.601257540.2191713010.284925398AT1G49560AT1G49560
REM22 4.39198380.000000000.0000000000.000000000.0000000000.0035283440.1636120080.000000000 4.224843400.0000000000.000000000AT3G17010REM22
DOF2.4 7.51889110.000000000.0000000000.000000000.0000000001.2149993012.1265650350.000000000 4.177326730.0000000000.000000000AT2G37590DOF2.4
AT1G63820 5.25675750.000000000.0000000000.000000000.0065998190.7535164740.4089063130.000000000 4.087734900.0000000000.000000000AT1G63820AT1G63820
AT5G02460 4.22933130.000000000.0000000000.000000000.0000000000.0862427550.1929385560.000000000 3.950150030.0000000000.000000000AT5G02460AT5G02460
NAC2 4.42147280.000000000.0000000000.000000000.0000000000.1925054560.2797655610.000000000 3.949201790.0000000000.000000000AT3G15510NAC2
CRF1 5.46571290.321068730.0851207440.250185680.2368457020.1135095680.0975966100.000000000 3.889663790.3598659480.111856089AT4G11140CRF1
AT2G28510 7.22985000.000000000.0000000000.019168880.2669160430.9770861682.1309367640.046193764 3.789548430.0000000000.000000000AT2G28510AT2G28510
GATA20 3.73018360.000000000.0000000000.000000000.0000000000.0117295850.0633737510.000000000 3.655080270.0000000000.000000000AT2G18380GATA20
FLP 5.87004180.357160570.0000000000.244350130.0443077760.0626899890.1777472040.000000000 3.253110391.4417407280.288935003AT1G14350FLP
AT5G63700 3.50447950.000000000.0000000000.486348840.0000000000.0000000000.0081729040.000000000 2.875219840.0000000000.134737917AT5G63700AT5G63700
bZIP44 5.38547360.057069810.0566604030.058593840.1655720641.2780979770.7636829220.204511899 2.801284730.0000000000.000000000AT1G75390bZIP44
AT1G26790 3.10800480.000000000.0000000000.000000000.0000000000.0094641480.5606949820.000000000 2.537845720.0000000000.000000000AT1G26790AT1G26790
KNAT2 2.85811010.000000000.0000000000.040742710.2861518170.0000000000.0656232550.000000000 2.465592360.0000000000.000000000AT1G70510KNAT2
AT1G28310 4.33721610.000000000.0000000000.000000000.6386400430.4393182790.9746592000.000000000 2.284598590.0000000000.000000000AT1G28310AT1G28310
AGL15 2.19962630.000000000.0000000000.000000000.0047846890.0070803580.0324199890.000000000 2.155341250.0000000000.000000000AT5G13790AGL15
WRKY21 3.58130060.000000000.0000000000.028748960.1000102010.4108442230.7377790730.000000000 2.088229080.0948163560.120872667AT2G30590WRKY21
bZIP19 3.54621780.159673290.0086113060.027020900.0987262610.4150481190.8276131820.000000000 2.009524690.0000000000.000000000AT4G35040bZIP19
NAC086 1.97595340.000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000 1.975953370.0000000000.000000000AT5G17260NAC086
WRKY32 2.98202060.000000000.0000000000.000000000.0519725400.4715632760.4430350570.000000000 1.927657070.0439567600.043835858AT4G30935WRKY32
VOZ1 3.04495480.000000000.0000000000.000000000.0347476600.4010002250.4709808270.179972277 1.891582020.0273752810.039296518AT1G28520VOZ1
SVP 1.92213460.048021070.0000000000.019982320.0000000000.0662739690.0583908560.000000000 1.716979420.0000000000.012486989AT2G22540SVP
CDF3 2.86302560.000000000.0000000000.000000000.0057416270.3819917510.8372287110.000000000 1.624108730.0139547830.000000000AT3G47500CDF3
AS1 3.15811490.010392640.0000000000.095512570.0000000000.1614181090.5173818560.738659628 1.585581700.0000000000.049168432AT2G37630AS1
ROS4 2.62531380.010404650.0373406190.029380810.0634018950.1829976620.4368976160.362612906 1.445707690.0298171250.026752804AT3G14980ROS4
AT1G47570 2.44716940.021869790.0606787680.042157380.0028708130.1755202590.1269766380.745774195 1.235022010.0249136870.011385850AT1G47570AT1G47570
NAC045 1.16917260.000000000.0000000000.000000000.0000000000.0673500900.3119725550.000000000 0.789849960.0000000000.000000000AT3G03200NAC045
ARF11 1.15266390.000000000.0000000000.000000000.0316154900.0000000000.0000000000.471078970 0.649969430.0000000000.000000000AT2G46530ARF11
WOX2 0.61535040.000000000.0000000000.000000000.0256174330.0000000000.0000000000.000000000 0.589732950.0000000000.000000000AT5G59340WOX2
AT1G64530 1.00907910.058233410.0873135080.081955010.0839355900.0273914450.0330211140.000000000 0.570400780.0083524340.058475786AT1G64530AT1G64530
ET2 0.65698600.000000000.0000000000.000000000.0000000000.0590939200.0940881840.000000000 0.503803880.0000000000.000000000AT5G56780ET2
ARF18 0.75708370.000000000.0000000000.033740050.0000000000.1052857180.1985979380.009890134 0.390525400.0144670900.004577384AT3G61830ARF18
MBF1A 0.72513280.016570870.0899098640.000000000.0145070980.0292385890.1055148120.000000000 0.382424050.0000000000.086967539AT2G42680MBF1A
AT1G02030 0.47059400.000000000.0209471770.000000000.0356514390.0000000000.0000000000.000000000 0.379591440.0344039830.000000000AT1G02030AT1G02030
AGL80 0.38932510.000000000.0000000000.000000000.0038277510.0082959240.0467118940.000000000 0.323735160.0000000000.006754346AT5G48670AGL80
AT1G58220 0.45726390.000000000.0034269180.000000000.0243200890.0045677340.1033213660.000000000 0.270506400.0029958790.048125521AT1G58220AT1G58220
AT1G09710 0.40639270.000000000.0000000000.013050400.0047846890.0607496490.0921105820.000000000 0.210312280.0185766790.006808466AT1G09710AT1G09710
SPL13A 0.31422440.000000000.0000000000.000000000.0000000000.0000000000.0271848170.000000000 0.208225580.0594745120.019339473AT5G50570SPL13A
AT3G46070 0.15410260.000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000 0.144257430.0098451940.000000000AT3G46070AT3G46070
TCP24 0.11780940.000000000.0000000000.000000000.0000000000.0000000000.0000000000.000000000 0.117809440.0000000000.000000000AT1G30210TCP24
SPL10 0.14887050.000000000.0000000000.000000000.0057416270.0025288280.0161486970.000000000 0.088327570.0084753310.027648459AT1G27370SPL10
AT4G12850 0.10511550.000000000.0309886270.010187490.0028708130.0000000000.0000000000.000000000 0.061068590.0000000000.000000000AT4G12850AT4G12850
In [224]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(phl_rank[1:10,], aes(x=reorder(GeneName, phl, decreasing = FALSE),  y=phl)) + geom_point(size=4)+ 
  labs(title="Phloem-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [1275]:
write.csv(phl_rank,"Phloem_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [1276]:
tf_rank <- phl_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [1277]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [1278]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Phloem ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Xylem¶

In [103]:
xyl_rank <- bc_rank[which(bc_rank$xyl*2 > bc_rank$all),]%>% arrange(desc(xyl))
xyl_rank$GeneName <- rownames(xyl_rank)
In [104]:
xyl_rank
A data.frame: 96 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
AT1G6881015.7407760.000000001.244107880.000000000.0000000000.0060392730.10010951112.3885372.001981780.0000000000.00000000AT1G68810AT1G68810
MYB4610.9754840.000000000.000000000.000000000.0000000000.0000000000.00000000010.9754840.000000000.0000000000.00000000AT5G12870MYB46
VND212.6181690.000000001.129483930.000000000.0000000000.0000000000.00681836810.3468591.135008360.0000000000.00000000AT4G36160VND2
ATHB-1515.4399240.000000000.000000000.000000000.0000000000.3189661293.657313301 9.6770601.786584860.0000000000.00000000AT1G52150ATHB-15
DOF213.2241780.000000001.365750190.200729931.4873502260.0000000000.002870999 9.4928400.596259010.0172068160.06117147AT3G21270DOF2
MYB83 9.3073810.000000000.000000000.000000000.0000000000.0000000000.000000000 9.3073810.000000000.0000000000.00000000AT3G08500MYB83
VND7 9.2840490.000000000.000000000.000000000.0000000000.0000000000.000000000 9.2840490.000000000.0000000000.00000000AT1G71930VND7
AT1G6681010.0714160.172518570.520124530.000000000.0000000000.0000000000.000000000 9.2811250.000000000.0976477950.00000000AT1G66810AT1G66810
IAA6 9.3103560.000000000.000000000.000000000.0000000000.0000000000.000000000 9.2185190.091836730.0000000000.00000000AT1G52830IAA6
VND4 9.0974540.000000000.000000000.000000000.0000000000.0000000000.000000000 9.0974540.000000000.0000000000.00000000AT1G12260VND4
ZHD3 8.7593650.000000000.000000000.000000000.0000000000.0000000000.000000000 8.7593650.000000000.0000000000.00000000AT2G02540ZHD3
VND5 8.5076320.000000000.000000000.000000000.0000000000.0000000000.000000000 8.5076320.000000000.0000000000.00000000AT1G62700VND5
IAA812.8408840.121714320.000000000.059098140.0419094350.6066874931.171022730 8.4273391.169075180.8138338150.43020350AT2G22670IAA8
LBD18 8.7761550.000000000.000000000.000000000.0000000000.0000000000.000000000 8.4078000.000000000.0054900960.36286446AT2G45420LBD18
XND1 8.1481550.000000000.000000000.000000000.0000000000.0000000000.011712843 8.0469870.089455780.0000000000.00000000AT5G64530XND1
VND1 7.9795600.000000000.078521070.000000000.0000000000.0000000000.000000000 7.8755290.025510200.0000000000.00000000AT2G18060VND1
VND3 8.8805620.000000000.047547620.000000000.0000000000.0000000000.012799787 7.5665641.253650630.0000000000.00000000AT5G66300VND3
JLO 7.5049880.000000000.000000000.000000000.0000000000.0000000000.000000000 7.4465540.000000000.0160952820.04233802AT4G00220JLO
BHLH3214.5639420.051518621.574637770.198549960.0999179993.7866114140.983844784 7.3172980.551563470.0000000000.00000000AT3G25710BHLH32
WLIM2a13.1544910.548811863.791127660.010179190.0473219190.1236024810.748725324 6.9965580.888164330.0000000000.00000000AT2G39900WLIM2a
PHB12.0404630.000000000.000000000.000000000.0000000000.2373717422.523777767 6.9658592.174559220.0214023730.11749355AT2G34710PHB
IAA1112.5503700.086220470.123552480.000000000.0075567571.2737997271.428987033 6.7113062.765854910.0750563720.07803629AT4G28640IAA11
NAC07512.0010410.000000000.000000000.000000000.0000000000.1181857900.244830586 6.6953814.888805500.0080476410.04579085AT4G29230NAC075
AT1G68200 6.6774270.000000000.000000000.000000000.0000000000.0000000000.000000000 6.6774270.000000000.0000000000.00000000AT1G68200AT1G68200
KNAT712.3663702.671167140.129046880.562741290.6253924110.2769569700.598733886 6.6600960.025618930.1407583850.67585785AT1G62990KNAT7
WOX1312.0674110.000000000.000000000.000000000.0263345872.5133674031.624525102 6.6060821.297101560.0000000000.00000000AT4G35550WOX13
HB31 6.3375980.000000000.000000000.000000000.0000000000.0000000000.000000000 6.3375980.000000000.0000000000.00000000AT1G14440HB31
NAC010 9.9377480.000000000.000000000.000000000.0000000000.0000000000.000000000 5.8101480.330682201.2407347002.55618313AT1G28470NAC010
IAA3111.1244540.000000002.207881980.000000000.0000000000.0091416890.931777856 5.7766712.198981690.0000000000.00000000AT3G17600IAA31
HAT14 6.9597100.000000000.000000000.000000000.0000000000.0643270930.188703542 5.6230121.083667700.0000000000.00000000AT5G06710HAT14
..........................................
IAA102.27619960.1459458110.0498264360.000000000.0635545390.0444992760.1149797441.274504840.2991861290.1026698180.18103304AT1G04100IAA10
PIF41.20949360.0000000000.0000000000.000000000.0047846890.0000000000.0000000001.176213760.0284951130.0000000000.00000000AT2G43010PIF4
RHA11.98755500.1032935270.1796818190.037969810.1519065750.0465129500.1487163931.171831340.0454267240.0080476410.09416821AT5G45710RHA1
AT5G180901.32639130.0000000000.0000000000.000000000.0000000000.0000000000.0000000001.142362580.1200901880.0482154590.01572303AT5G18090AT5G18090
AT1G217802.25153650.0000000000.0209768850.000000000.0341437700.0094566810.0575403831.126936030.0908266850.3534758830.55818016AT1G21780AT1G21780
HB341.35150690.0347377210.0103687750.000000000.0198625680.0139030400.0548041121.119610320.0902819380.0000000000.00793841AT3G28920HB34
SPL22.04357430.0188948520.0000000000.000000000.0106203580.1098356040.3042576051.119486640.2973173410.0801947700.10296710AT5G43270SPL2
AT5G035001.65757380.0587047140.2130825580.000000000.1322064280.0198202630.0298050771.098448210.0575088950.0263254610.02167218AT5G03500AT5G03500
AT3G221001.53873160.0000000000.0069418570.000000000.0000000000.0180231380.0145944181.063226040.4084441180.0071054680.02039659AT3G22100AT3G22100
AT1G512001.92634510.0000000000.0647434230.000000000.0409793920.0714024030.4368219871.059769310.1364144910.0000000000.11621412AT1G51200AT1G51200
AT1G240401.00936400.0000000000.0000000000.000000000.0028708130.0000000000.0000000001.003497350.0000000000.0029958790.00000000AT1G24040AT1G24040
IWS11.63264210.0892058710.0479966900.037886800.1163011680.0303343410.1248377270.946273490.0924844940.0000000000.14732156AT1G32130IWS1
AT1G263001.72660140.0871248870.1570368120.086654410.1614434250.0380889670.0707494440.932649950.1012215800.0424913540.04914057AT1G26300AT1G26300
GT-11.64686550.0000000000.1029394190.017601360.0837594540.0935741240.2166666530.893708390.2222258160.0000000000.01639030AT1G13450GT-1
AT5G067701.17670880.0146990670.0919387050.032608130.0708631310.0000000000.0050347280.880948420.0414965990.0000000000.03912002AT5G06770AT5G06770
MYB251.29898500.0473677860.0000000000.058284700.0777504440.2075205970.0392205580.848745110.0200957820.0000000000.00000000AT2G39880MYB25
AL21.46797000.0000000000.0850564790.028526500.0729860230.0218320740.0715425290.804732420.1788818800.0000000000.20441209AT3G11200AL2
JMJ141.50579360.0520933120.0585058920.018361740.0308051900.0452066100.0476116160.798776110.0842546650.1525999930.21757852AT4G20400JMJ14
FBH21.09556290.0378922960.0000000000.013510450.0296383290.0220299340.0107741620.741296680.1734959920.0125849200.05434009AT4G09180FBH2
RFI21.39293140.0000000000.1234970530.036374260.0872734740.0359723850.1505456470.732090230.1224170920.0039276550.10083363AT2G47700RFI2
ARF11.30874960.0568791330.1260526760.034065500.0472830560.0211592610.0945333720.660345630.1583533170.0083524340.10172524AT1G59750ARF1
GIF30.66824040.0000000000.0000000000.000000000.0368671890.0068302840.0284548220.596088110.0000000000.0000000000.00000000AT4G00850GIF3
BZIP240.68975040.0000000000.0000000000.000000000.0000000000.0000000000.0562228860.481486660.1520408160.0000000000.00000000AT3G51960BZIP24
AT3G458800.53235930.0609660500.0000000000.000000000.0124401910.0411000610.0000000000.404262260.0135907720.0000000000.00000000AT3G45880AT3G45880
AT5G254700.72615610.0054282180.0000000000.069885060.0000000000.0000000000.0000000000.382619600.0454985880.1530389390.06968570AT5G25470AT5G25470
AGL640.27367770.0000000000.0000000000.000000000.0000000000.0000000000.0000000000.273677700.0000000000.0000000000.00000000AT1G29962AGL64
ARR150.26377230.0000000000.0000000000.010179190.0000000000.0077667280.0132786280.204316480.0282312930.0000000000.00000000AT1G74890ARR15
ORC1A0.12223500.0000000000.0000000000.000000000.0000000000.0236722820.0028748910.095687860.0000000000.0000000000.00000000AT4G14700ORC1A
EMB930.12695620.0000000000.0000000000.000000000.0179486920.0168270750.0021598370.072552980.0049806220.0000000000.01248699AT2G03050EMB93
AT4G082500.10612130.0000000000.0067658160.000000000.0366709000.0000000000.0000000000.062684560.0000000000.0000000000.00000000AT4G08250AT4G08250
In [225]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(xyl_rank[1:10,], aes(x=reorder(GeneName, xyl, decreasing = FALSE),  y=xyl)) + geom_point(size=4)+ 
  labs(title="Xylem-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [1281]:
write.csv(xyl_rank,"Xylem_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [1282]:
tf_rank <- xyl_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [1283]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [1284]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Xylem ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

LRC¶

In [109]:
lrc_rank <- bc_rank[which(bc_rank$lrc*2 > bc_rank$all),]%>% arrange(desc(lrc))
lrc_rank$GeneName <- rownames(lrc_rank)
In [1286]:
lrc_rank
A data.frame: 26 x 12
allatritricorendperproxylphllrccolGeneID
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr>
WRKY914.594441844.260777981.5843026640.000000000.0000000000.0000000000.0000000000.00000000.0000000007.943903540.80545766AT1G68150
ARF1613.020685212.309307040.2821696311.176191730.0628672950.0000000000.0000000000.00000000.0000000006.661736192.52841331AT4G30080
IAA1 8.426490791.574596990.1584079920.914381520.0000000000.0000000000.0000000000.00000000.0000000004.912536030.86656826AT4G14560
AIL5 6.186817070.346700870.0000000000.161379310.0000000000.0038586150.0166284690.00000000.0000000004.495120791.16312903AT5G57390
ANL2 7.724069331.816270860.6780290160.839195270.0813174800.0000000000.0000000000.00000000.0000000003.913015960.39624074AT4G00730
AT1G74840 7.038023670.792162610.2622632530.476408620.3798592290.1037245020.0781087190.41275250.0153061223.814726800.70271129AT1G74840
AT2G35910 5.894038770.251408970.0869503160.000000000.0000000000.0000000000.0000000000.00000000.0000000003.049804612.50587487AT2G35910
AT1G05805 5.621013060.731349900.1474386230.084630560.0000000000.0000000000.0000000000.00000000.0000000002.896653761.76094022AT1G05805
LBD4 4.286182630.576987220.0000000000.329053930.0591909250.0077667280.0000000000.00000000.0839124302.857943780.37132761AT1G31320
WRKY11 5.311610130.931069870.1481754230.188864270.1431390720.0740740340.2119631950.17484150.0255102042.841332350.57264023AT4G31550
AT1G21000 4.561644500.189572230.0578860420.000000000.0105263160.1540823440.3885353980.00000000.5125906262.432699880.81575166AT1G21000
GRF2 2.499077540.338464320.2627434510.197029180.0481344810.0233746030.0000000000.00000000.0968374471.340289310.19220475AT4G37740
RBR1 2.493180810.290709640.0063375520.205161160.0123414460.0201006940.0138991620.00000000.0523538061.289882700.60239465AT3G12280
AT2G42300 2.178457640.155201490.0056921680.145853230.0028708130.0000000000.0000000000.00000000.0045561131.211147310.65313652AT2G42300
CSDP1 2.240427400.255544470.0878816030.251741820.0311298320.0687951080.0812266140.00000000.0045561131.160311670.29924017AT4G36020
PYE 1.274708440.119171410.0740169990.037559680.0520712850.0188260120.0234337150.00000000.1167691930.692821340.14003881AT3G47640
NAC016 1.159073160.000000000.0000000000.062917770.0000000000.0000000000.0000000000.00000000.0000000000.636297190.45985820AT1G34180
HDG1 0.922497410.188771410.0745619480.051494250.0000000000.0000000000.0000000000.00000000.0000000000.558213760.04945604AT3G61150
HDG2 0.597440880.029556900.0000000000.000000000.0000000000.0000000000.0000000000.00000000.0000000000.522225350.04565862AT1G05230
AGL94 0.727666110.018764200.0000000000.043784260.0000000000.0000000000.0000000000.00000000.0000000000.515220540.14989711AT1G69540
TRFL3 0.920376990.069237570.0000000000.129124670.0000000000.0000000000.0000000000.00000000.0161944010.511062250.19475810AT1G17460
HDG12 0.654368850.135588590.0000000000.000000000.0000000000.0000000000.0000000000.00000000.0000000000.387080750.13169951AT1G17920
RING1 0.299646470.000000000.0000000000.075225460.0000000000.0000000000.0050308370.00000000.0000000000.155393210.06399696AT5G10380
NAC063 0.092152830.000000000.0000000000.023766580.0000000000.0000000000.0000000000.00000000.0000000000.051438640.01694761AT3G55210
BEH1 0.075376490.000000000.0000000000.000000000.0028708130.0000000000.0000000000.00000000.0000000000.051000340.02150534AT3G50750
AT4G11400 0.022173960.000000000.0000000000.000000000.0000000000.0000000000.0000000000.00000000.0000000000.022173960.00000000AT4G11400
In [227]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(lrc_rank[1:10,], aes(x=reorder(GeneName, lrc, decreasing = FALSE),  y=lrc)) + geom_point(size=4)+ 
  labs(title="LRC-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [1287]:
write.csv(lrc_rank,"LRC_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [1288]:
tf_rank <- lrc_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [1289]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [1290]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Lateral Root Cap ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Columella¶

In [111]:
col_rank <- bc_rank[which(bc_rank$col*2 > bc_rank$all),]%>% arrange(desc(col))
col_rank$GeneName <- rownames(col_rank)
In [112]:
col_rank
A data.frame: 47 x 13
allatritricorendperproxylphllrccolGeneIDGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><chr>
FBH4 9.216905770.085447290.0156169420.3113097720.0411687760.0000000000.0000000000.000000000.0000000003.0825572085.68080579AT2G42280FBH4
LBD4110.156289310.379637730.1548169210.0000000000.0562262040.0341393500.1026151420.000000000.0000000004.2496288845.17922508AT3G02550LBD41
WRKY26 6.089565080.163510240.0092793900.0000000000.0000000000.1547402760.2158915100.000000000.0000000001.6478428543.89830081AT5G07100WRKY26
WRKY33 6.832910240.466189160.2058712710.5538528380.2940005020.0312962640.0417611700.000000000.0000000001.7714039803.46853505AT2G38470WRKY33
RAP2.4 6.437301690.223124430.0337217350.2136252660.1539158890.1277484310.1697106540.314807040.1425732621.7307035343.32737144AT1G78080RAP2.4
AT3G57800 6.083363280.189746260.0000000000.0000000000.0000000000.0741884100.1259721150.000000000.4071828712.0992001003.18707352AT3G57800AT3G57800
NAM 3.793137390.022917420.0000000000.1121337920.0175485080.0000000000.0265574240.000000000.0000000000.4514764993.16250375AT1G52880NAM
AT1G76580 5.847212610.195792910.0034269180.0361450040.0158630190.0022838670.0021598370.000000000.0104211242.5486290523.03249087AT1G76580AT1G76580
RAP2.1 5.776803960.032343740.0000000000.5569701100.0089360670.0045708440.0170234611.243963180.0000000000.8813651983.03163136AT1G46768RAP2.1
AT2G41835 3.879659650.131928150.0231708770.0000000000.0105263160.0000000000.0000000000.000000000.0000000001.0248824752.68915183AT2G41835AT2G41835
BZIP25 3.725949830.336051290.0957674470.0363879600.1113173650.0068098860.0059756660.000000000.0589507760.5939713262.48071811AT3G54620BZIP25
ARF10 3.768917610.251085810.0000000000.1183377540.0597267880.0000000000.0000000000.019769410.0258340650.9938838062.30027998AT2G28350ARF10
RDUF1 3.766710810.313861550.0504084310.3001619550.1191115490.0000000000.0021598370.000000000.0258777020.8776718342.07745796AT3G46620RDUF1
AT3G25790 2.850562470.165788890.0511206520.3564321640.0000000000.0000000000.0000000000.000000000.0000000000.8447900411.43243073AT3G25790AT3G25790
SCL1 2.615243740.144961050.1719040990.0758897660.0476102240.2628783190.2802181060.000000000.0044217690.2325883031.39477210AT1G21450SCL1
NAC052 2.588545290.037332110.0045845540.0000000000.0455452920.0199731390.0821190230.000000000.0171255500.9908211491.39104448AT3G10490NAC052
RR1 2.516176030.210088480.1937467210.1762420780.0553793380.0092462580.0097029410.000000000.0547674920.4499563231.35704640AT3G16857RR1
AT5G23405 1.585625470.181175900.0000000000.0537931030.0435158870.1054193740.0150843980.000000000.0021990110.1912423580.99319544AT5G23405AT5G23405
AT1G77570 1.571875340.093008870.0000000000.0000000000.0057416270.1186700100.0850116640.000000000.0134066250.2831187560.97291779AT1G77570AT1G77570
TLP7 1.552092930.017337080.0311762850.0673191460.0589934850.0149405020.0626092220.000000000.0573713010.3277445330.91460138AT1G53320TLP7
ATRX 1.643892570.105063600.0108765550.0542723070.0444122420.0681757460.1140645030.000000000.1175461640.2299802450.89950122AT1G08600ATRX
EIN3 1.447877170.065411260.0761559960.0104048600.0568384090.0034466580.0107741620.000000000.0170465940.3155196790.89227955AT3G20770EIN3
CHR11 1.717025410.027741730.0291271050.0081466730.0376283800.0567529010.0709615550.076828900.1564885020.3782096650.87514000AT3G06400CHR11
NTT 1.357539530.064071640.0000000000.1075154730.0000000000.0000000000.0000000000.000000000.0000000000.3739507870.81200163AT3G57670NTT
PC-MYB1 1.353533550.056456350.0312163140.0740433000.0254869500.0045677340.0065851160.000000000.0615283600.3016616510.79198778AT4G32730PC-MYB1
AT2G44430 1.543909080.125542520.0933713100.0825992670.0758465970.0000000000.0021598370.074424010.0021990110.3056279050.78213863AT2G44430AT2G44430
AT3G52250 1.501358550.080968820.0187397490.1403548170.0505762420.0153233790.0518276110.000000000.0964528540.2814578520.76565722AT3G52250AT3G52250
SDG2 1.296267880.061002630.0582417790.1187731350.0524048190.0082176380.0463191500.000000000.0457285490.2254434650.68013672AT4G15180SDG2
DRIP2 0.886997420.060373270.0257118040.0000000000.0028708130.0199642070.0043150100.000000000.0021990110.1309576350.64060567AT2G30580DRIP2
AT5G65910 1.215877640.037979420.0533399470.0543070680.0789330900.0221095640.0274787060.042640860.0439119650.2182522780.63692473AT5G65910AT5G65910
AT1G01260 0.913081890.068349880.0300546450.0101791940.0573731500.0193316480.0452211220.000000000.0021990110.1830569270.49731631AT1G01260AT1G01260
PRR7 0.915323940.060271780.1641460350.0000000000.0086124400.0000000000.0021598370.000000000.0158530270.1790240990.48525672AT5G02810PRR7
SNL4 0.916248300.057373010.0224429950.0918940930.0723998650.0290374330.0176168340.000000000.0402921270.1213519970.46383995AT1G70060SNL4
AT3G54460 0.715230620.019098190.0114383910.0000000000.0301728940.0118239460.0021598370.000000000.0000000000.1995298240.44100753AT3G54460AT3G54460
AT4G13040 0.643464240.062630790.0439653600.0589738480.0118068810.0000000000.0000000000.000000000.0000000000.0697640260.39632334AT4G13040AT4G13040
BPC7 0.292843620.000000000.0000000000.0122723250.0038277510.0000000000.0106470490.000000000.0000000000.1083888950.15770760AT2G35550BPC7
SPL11 0.278239880.000000000.0000000000.0000000000.0105263160.0000000000.0000000000.000000000.0083404970.1089658400.15040723AT1G27360SPL11
SDG29 0.220896400.000000000.0155531630.0147214400.0287961100.0000000000.0057497820.000000000.0000000000.0250817030.13099420AT5G53430SDG29
EMF2 0.197633550.000000000.0132058290.0176013640.0244312670.0000000000.0053925960.000000000.0280975070.0078739280.10103106AT5G51230EMF2
AT5G25790 0.172956330.000000000.0000000000.0000000000.0047846890.0000000000.0000000000.000000000.0000000000.0795057120.08866593AT5G25790AT5G25790
HDG11 0.140192220.000000000.0309485990.0000000000.0075567570.0023601190.0064701820.000000000.0045561130.0000000000.08830045AT1G73360HDG11
AT2G33550 0.118188690.000000000.0000000000.0000000000.0047846890.0000000000.0000000000.000000000.0000000000.0260315930.08737241AT2G33550AT2G33550
NF-YC12 0.112073780.000000000.0000000000.0000000000.0000000000.0154590350.0000000000.000000000.0000000000.0248097130.07180503AT5G38140NF-YC12
MYB1 0.126091630.000000000.0281756650.0000000000.0038277510.0048889470.0064701820.000000000.0000000000.0189172570.06381183AT3G09230MYB1
AT4G36050 0.082866750.000000000.0093351550.0000000000.0057416270.0000000000.0021598370.000000000.0000000000.0071054680.05852467AT4G36050AT4G36050
AT1G18560 0.051971590.000000000.0000000000.0000000000.0028708130.0025288280.0021598370.000000000.0000000000.0046218960.03979022AT1G18560AT1G18560
RR14 0.014746880.000000000.0000000000.0000000000.0000000000.0000000000.0000000000.000000000.0000000000.0000000000.01474688AT2G01760RR14
In [228]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(col_rank[1:10,], aes(x=reorder(GeneName, col, decreasing = FALSE),  y=col)) + geom_point(size=4)+ 
  labs(title="Columella-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [1293]:
write.csv(col_rank,"Columella_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [1294]:
tf_rank <- col_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [1295]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [1296]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Columella ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Add tissue level¶

In [116]:
bc_rank <- bc_rank %>% mutate(ground=cor+end, epi=atri+tri, stele=per+pro+xyl+phl, epilrc=atri+tri+lrc, rc=lrc+col)
In [117]:
head(bc_rank)
A data.frame: 6 x 17
allatritricorendperproxylphllrccolGeneIDgroundepisteleepilrcrc
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><dbl><dbl><dbl><dbl>
BZIP931.714470.0000000.0000000.000000000 0.0066985658.0463557611.944303650.0362276411.6808854 0.0000000.000000AT5G24800 0.006698565 0.00000031.70777241 0.00000 0.00000
AT3G4343029.501340.0000000.0000000.005375774 0.0066985658.9241430510.033691103.50786160 7.0235724 0.0000000.000000AT3G43430 0.012074338 0.00000029.48926813 0.00000 0.00000
HAT732.324157.0540655.6263998.996598123 4.9103152710.02122024 0.000000000.00000000 0.0000000 4.4330601.282490AT5G1515013.90691339412.680464 0.0212202417.11352 5.71555
PLT122.943423.5738060.0000002.592117793 1.9586050760.00000000 0.000000000.00000000 0.0000000 9.2834435.535445AT3G20840 4.550722869 3.573806 0.0000000012.8572514.81889
MYB3619.513090.0000000.0000003.96557284511.6482268733.89929436 0.000000000.00000000 0.0000000 0.0000000.000000AT5G5762015.613799719 0.000000 3.89929436 0.00000 0.00000
GATA230.677477.8534135.5331612.445113736 1.3825930660.50181676 0.089676060.05936252 0.462778810.4048631.944695AT2G45050 3.82770680213.386574 1.1136341223.7914412.34956

Ground Tissue¶

In [118]:
ground_rank <- bc_rank[which(bc_rank$ground*2 > bc_rank$all),]%>% arrange(desc(ground))
ground_rank <- ground_rank[-c(match(rownames(cor_rank), rownames(ground_rank)),match(rownames(end_rank), rownames(ground_rank))),]
ground_rank$GeneName <- rownames(ground_rank)
In [119]:
ground_rank
A data.frame: 35 x 18
allatritricorendperproxylphllrccolGeneIDgroundepisteleepilrcrcGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><dbl><dbl><dbl><dbl><chr>
MYB1224.99031300.241105510.15591284910.110525535.939362411.0601577311.1128782244.320862711.4130895390.0194143810.617004128AT2G4746016.049887940.397018367.906988200.4164327430.636418509MYB12
MYB313.96999370.609846410.022671060 3.852483566.578271011.6383841630.1670727860.706097030.1329931970.2012197380.060954763AT1G2264010.430754570.632517472.644547180.8337372120.262174501MYB3
ARR311.38661830.312162000.052917778 4.729194233.408534350.6197782450.7251121440.000000000.6249811970.2416758090.672262527AT1G59940 8.137728570.365079781.969871590.6067555870.913938336ARR3
AN3 9.29499050.760030070.067984101 2.895143223.032617642.0924811490.0876739050.000000000.0509832000.2153066080.092770587AT5G28640 5.927760860.828014172.231138251.0433207780.308077196AN3
AtHB23 9.36419500.564035070.266474042 3.306330791.686677441.3678821121.1094167790.174874070.7439531440.0636541040.080897453AT1G26960 4.993008230.830509113.396126100.8941632150.144551557AtHB23
GATA16 8.80332200.167631510.000000000 3.041038431.814706031.9241308320.2477016410.549010660.0414965990.2513831470.766223174AT5G49300 4.855744460.167631512.762339740.4190146581.017606321GATA16
ULT1 7.45257490.280997370.000000000 2.554196272.082847111.3109845800.1647802300.105458570.0151003300.3257208570.612489631AT4G28190 4.637043380.280997371.596323710.6067182280.938210488ULT1
HSFB4 5.09817550.103429210.000000000 2.139659012.155036290.3573894080.1741155590.000000000.1459183670.0000000000.022627675AT1G46264 4.294695300.103429210.677423330.1034292150.022627675HSFB4
AT1G62975 5.86948221.655471090.154284913 2.022931971.401707440.0814260140.0838704340.131135690.3024740510.0361806330.000000000AT1G62975 3.424639411.809756000.598906191.8459366350.036180633AT1G62975
AT5G57150 5.35624570.118672200.000000000 0.858277882.531624480.5168555530.4618262310.000000000.7937366700.0415661570.033686545AT5G57150 3.389902370.118672201.772418450.1602383600.075252702AT5G57150
AT3G24120 3.96637891.108252680.000000000 1.644267710.912194900.1679493630.0940997030.000000000.0159476930.0084859750.015180823AT3G24120 2.556462611.108252680.277996761.1167386570.023666799AT3G24120
HB5 4.01712370.040248870.000000000 1.664743120.876504340.3908546130.5272938060.000000000.5123843450.0000000000.005094571AT5G65310 2.541247450.040248871.430532760.0402488750.005094571HB5
AT1G63100 3.78487770.482550720.021936403 1.632203530.636189540.0668899260.0000000000.000000000.0000000000.9451076250.000000000AT1G63100 2.268393070.504487120.066889931.4495947480.945107625AT1G63100
SCL3 4.12975260.000000000.000000000 0.458950041.760002890.3428012120.1287401870.000000000.0000000000.1095649751.329693279AT1G50420 2.218952930.000000000.471541400.1095649751.439258254SCL3
AT3G61420 3.48461531.151041760.229900919 1.425230240.593101770.0215018440.0148223320.000000000.0000000000.0139609530.035055509AT3G61420 2.018332011.380942680.036324181.3949036340.049016462AT3G61420
MYB34 3.16752210.000000000.000000000 0.807635350.838790230.5860691720.6255732880.000000000.2379650080.0714890300.000000000AT5G60890 1.646425580.000000001.449607470.0714890300.071489030MYB34
AT4G36860 2.76982590.037200090.000000000 0.547372660.965404920.0864309390.0481984410.450365600.2667616830.0267157800.341375799AT4G36860 1.512777570.037200090.851756660.0639158660.368091578AT4G36860
COL4 2.12691860.082406660.006853837 0.990669480.379629920.0678721140.0400709950.000000000.0000000000.0763388550.483076741AT5G24930 1.370299400.089260500.107943110.1655993530.559415595COL4
OFP12 2.19710410.707114870.114515301 0.906719430.371763230.0000000000.0000000000.000000000.0000000000.0796676540.017323618AT1G05420 1.278482660.821630170.000000000.9012978280.096991272OFP12
AT4G28030 2.11776440.280740110.559077780 1.026003180.207197450.0000000000.0000000000.000000000.0000000000.0080476410.036698207AT4G28030 1.233200630.839817890.000000000.8478655340.044745847AT4G28030
HB6 2.07805620.027717700.057032002 0.702893730.423763160.0870778020.0874244480.000000000.0910047920.1991543860.401988172AT2G22430 1.126656890.084749710.265507040.2839040930.601142558HB6
3xHMG-box1 1.63369050.134886630.111669417 0.690068890.347645460.1023814360.0000000000.000000000.0000000000.2129674950.034071135AT4G11080 1.037714360.246556040.102381440.4595235390.2470386303xHMG-box1
LCL1 1.69906220.011730290.000000000 0.438783910.507891860.1626607420.3668072810.048338870.0182244510.0000000000.144624779AT5G02840 0.946675770.011730290.596031340.0117302900.144624779LCL1
ZFN1 1.59935990.000000000.000000000 0.625440060.253176520.0415877710.0664469550.000000000.0520847320.1279207800.432703120AT3G02830 0.878616590.000000000.160119460.1279207800.560623900ZFN1
AT5G58900 1.32316900.162424660.127262042 0.590260200.151094360.0034466580.0075477680.000000000.2079622040.0066616830.066509384AT5G58900 0.741354560.289686700.218956630.2963483850.073171067AT5G58900
MYB14 1.15528170.181654120.000000000 0.474178190.153122110.0834057130.1110641440.098999040.0000000000.0000000000.052858356AT2G31180 0.627300300.181654120.293468900.1816541230.052858356MYB14
AT3G61180 1.04061720.049316770.081243024 0.370549510.251016620.0682763490.1206402980.039791860.0512575690.0000000000.008525249AT3G61180 0.621566130.130559800.279966070.1305597960.008525249AT3G61180
GATA27 0.72537490.000000000.080171998 0.183135890.300065350.0409231760.0577365780.000000000.0309087490.0000000000.032433154AT5G47140 0.483201240.080172000.129568500.0801719980.032433154GATA27
TGA3 0.69856180.083727440.033861981 0.322268390.046946480.0000000000.0000000000.000000000.0750227400.0109801920.125754625AT1G22070 0.369214870.117589420.075022740.1285696090.136734817TGA3
BIM3 0.59101350.024658990.051597420 0.226242260.125884930.0604618070.0241978110.000000000.0000000000.0370907130.040879601AT5G38860 0.352127190.076256410.084659620.1133471200.077970314BIM3
AT5G43530 0.61332440.146254200.119769012 0.148824050.159122590.0393545770.0000000000.000000000.0000000000.0000000000.000000000AT5G43530 0.307946640.266023210.039354580.2660232080.000000000AT5G43530
NSI 0.47869570.069904250.079664129 0.127554030.127855360.0230292090.0247904830.000000000.0079355780.0000000000.017962618AT1G32070 0.255409390.149568380.055755270.1495683760.017962618NSI
EPR1 0.42814350.000000000.000000000 0.118876080.130186440.0208616040.0171123620.082377970.0000000000.0078739280.050855067AT1G18330 0.249062520.000000000.120351940.0078739280.058728995EPR1
NF-YA2 0.19282690.000000000.000000000 0.036496350.067196790.0333873700.0557464270.000000000.0000000000.0000000000.000000000AT3G05690 0.103693140.000000000.089133800.0000000000.000000000NF-YA2
SUVR5 0.11915410.000000000.000000000 0.012229650.054683120.0069750010.0032374230.000000000.0000000000.0000000000.042028910AT2G23740 0.066912770.000000000.010212420.0000000000.042028910SUVR5
In [229]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(ground_rank[1:10,], aes(x=reorder(GeneName, ground, decreasing = FALSE),  y=ground)) + geom_point(size=4)+ 
  labs(title="Ground Tissue-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [1301]:
write.csv(ground_rank,"Ground_Tissue_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [1302]:
tf_rank <- ground_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [1303]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [1304]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Ground Tissue ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Epidermis¶

In [121]:
epi_rank <- bc_rank[which(bc_rank$epi*2 > bc_rank$all),]%>% arrange(desc(epi))
epi_rank <- epi_rank[-c(match(rownames(atri_rank), rownames(epi_rank)),match(rownames(tri_rank), rownames(epi_rank))),]
epi_rank$GeneName <- rownames(epi_rank)
In [122]:
epi_rank
A data.frame: 56 x 18
allatritricorendperproxylphllrccolGeneIDgroundepisteleepilrcrcGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><dbl><dbl><dbl><dbl><chr>
KDR15.636370575.508501535.720270100.8365633940.4277811250.0951694740.0000000000.000000000.0000000002.9978489390.050236005AT1G269451.26434451911.228771630.09516947414.226620573.048084944KDR
MYB2317.415834957.916504753.147252891.0328958990.2144634550.0000000000.0000000000.000000000.0000000005.0110804450.093637514AT5G403301.24735935411.063757630.00000000016.074838085.104717959MYB23
ATS17.650968165.177512484.083092201.1219331260.8204898450.0473445640.0000000000.000000000.0000000006.0284967670.372099180AT5G426301.942422971 9.260604680.04734456415.289101456.400595947ATS
ARR5 9.759296364.358752763.805741160.2380718510.1923094420.0149500330.1677176460.000000000.1680272110.4899128670.323813394AT3G481000.430381293 8.164493920.350694890 8.654406790.813726262ARR5
ATMYC1 9.808112333.701176094.343052821.0950440310.5622227800.1066166020.0000000000.000000000.0000000000.0000000000.000000000AT4G004801.657266811 8.044228910.106616602 8.044228910.000000000ATMYC1
ATHB1313.410752303.894155283.699454221.3523457331.2516815060.6701973210.3525213490.000000000.3181609551.8295399030.042696030AT1G697802.604027239 7.593609501.340879625 9.423149411.872235933ATHB13
RSL1 7.390765163.289651093.219924530.4188983440.4570885700.0052026250.0000000000.000000000.0000000000.0000000000.000000000AT5G378000.875986914 6.509575620.005202625 6.509575620.000000000RSL1
NFL10.883094113.634968262.682474431.2680925911.1014953790.0000000000.0000000000.000000000.0000000001.9225243990.273539040AT5G656402.369587970 6.317442700.000000000 8.239967102.196063439NFL
GATA1212.176409441.819103714.494787530.1088240500.0000000000.2617911060.3067643264.285275690.4078100480.4000641280.091988854AT5G258300.108824050 6.313891245.261641170 6.713955370.492052982GATA12
EGL3 8.387593483.399271592.394224051.4771315041.0088613350.1081050000.0000000000.000000000.0000000000.0000000000.000000000AT1G636502.485992838 5.793495640.108105000 5.793495640.000000000EGL3
TRY 8.884112464.417849350.638636081.3199684970.7521823030.0886678840.0000000000.000000000.0089541351.6578542090.000000000AT5G532002.072150800 5.056485440.097622019 6.714339651.657854209TRY
WRKY72 4.017937431.676801621.163326720.0000000000.0000000000.0000000000.0000000000.000000000.0000000000.8266364690.351172610AT5G151300.000000000 2.840128350.000000000 3.666764821.177809079WRKY72
WRKY27 5.218051792.565439110.175337060.0636251110.0000000000.0000000000.0000000000.000000000.0000000002.3517391600.061911349AT5G528300.063625111 2.740776170.000000000 5.092515332.413650509WRKY27
OFP13 3.052150180.832080071.483868530.4323092830.1519628280.0000000000.0000000000.000000000.0000000000.1246898230.027239642AT5G048200.584272111 2.315948600.000000000 2.440638420.151929464OFP13
AT5G06550 4.434910761.116587781.156625660.4827202621.1019441600.3944828230.0000000000.000000000.0000000000.1533889340.029161143AT5G065501.584664421 2.273213440.394482823 2.426602370.182550077AT5G06550
MYB50 4.163859481.903491960.263447820.0638981100.0000000000.0000000000.0151235261.780483090.1374149660.0000000000.000000000AT1G575600.063898110 2.166939781.933021586 2.166939780.000000000MYB50
AT5G61590 4.056968191.767701850.363491470.3745096160.3086012760.6162184950.3496280950.000000000.2671436540.0096737310.000000000AT5G615900.683110892 2.131193321.232990245 2.140867050.009673731AT5G61590
AT4G26810 2.940575491.280359750.654853470.1429885060.3513051800.3646577110.1294602060.000000000.0000000000.0169506630.000000000AT4G268100.494293685 1.935213220.494117917 1.952163880.016950663AT4G26810
AT1G68670 3.372141580.608012611.323610050.0000000000.0577108570.0023601190.0000000000.000000000.2382230600.6808760390.461348839AT1G686700.057710857 1.931622660.240583180 2.612498701.142224878AT1G68670
HFR1 2.463172471.019097070.763366470.5067998070.1671006600.0000000000.0000000000.000000000.0000000000.0000000000.006808466AT1G023400.673900468 1.782463540.000000000 1.782463540.006808466HFR1
ZF1 2.572856690.441032541.126938940.0000000000.0000000000.0000000000.0000000000.650737850.0000000000.3335127170.020634643AT5G674500.000000000 1.567971480.650737852 1.901484200.354147360ZF1
AT2G18670 1.700013970.824633750.346503470.2664623170.0216449380.0000000000.0000000000.000000000.0000000000.1399438670.100825634AT2G186700.288107255 1.171137220.000000000 1.311081080.240769500AT2G18670
NAC053 2.293363960.741772770.420639080.1008474690.0361269700.0000000000.0000000000.164012530.0045561130.4141783610.411230667AT3G105000.136974439 1.162411850.168568646 1.576590210.825409028NAC053
AT5G13780 1.996139180.446428790.601027110.0698496910.0661290850.3536469230.2300560620.113112480.0534637950.0257178840.036707360AT5G137800.135978775 1.047455900.750279257 1.073173790.062425244AT5G13780
HB16 1.875113660.205704820.773380620.5676303310.2152911130.0231055280.0172710600.000000000.0045561130.0103113180.057862761AT4G400600.782921444 0.979085440.044932700 0.989396760.068174080HB16
MED6 1.308603880.396518700.577987300.0439001150.0914794390.0697390390.0237133020.000000000.0388119170.0315361780.034917888AT3G213500.135379554 0.974506000.132264259 1.006042180.066454065MED6
DEL3 1.693781560.463890940.495402140.0845269670.0850621840.0968453650.0000000000.273601700.0000000000.1751280090.019324260AT3G013300.169589151 0.959293070.370447068 1.134421080.194452269DEL3
LOL2 1.432895720.570189720.386714680.0897612730.0517561840.0519549070.0000000000.000000000.0122800900.1809334720.089305405AT4G216100.141517457 0.956904390.064234996 1.137837870.270238877LOL2
ERF104 1.558844300.483713450.379420880.0489941230.0984131890.2285459290.1578627700.000000000.0000000000.1184915030.043402452AT5G616000.147407312 0.863134340.386408698 0.981625840.161893955ERF104
ORC1B 1.405867620.484528300.371318070.0576480990.0702200360.1774291400.0291841810.135052980.0200680270.0558702170.004548579AT4G126200.127868135 0.855846360.361734327 0.911716580.060418796ORC1B
NF-YC10 1.132878560.342020640.404526760.0812505530.1650049040.0234686010.0000000000.000000000.0045561130.0426494640.069401524AT1G079800.246255457 0.746547400.028024713 0.789196860.112050987NF-YC10
LSD1 1.222570450.194018630.482632700.0135104500.0440271080.0092408250.0299775460.000000000.0445295450.1243840920.280249549AT4G203800.057537558 0.676651340.083747916 0.801035430.404633641LSD1
AT1G61990 1.096277510.298929900.372359860.1543412910.1314797220.1178973160.0053925960.000000000.0000000000.0000000000.015876819AT1G619900.285821013 0.671289760.123289912 0.671289760.015876819AT1G61990
MBD6 0.999393970.195270470.458508820.0928735630.0903539970.1009561870.0000000000.023080600.0021990110.0078739280.028277393AT5G593800.183227560 0.653779290.126235796 0.661653220.036151321MBD6
AT3G55080 1.117584510.368822710.206717740.1943766580.1291786250.0946222450.0000000000.000000000.0000000000.1100479640.013818567AT3G550800.323555283 0.575540450.094622245 0.685588410.123866532AT3G55080
RSZ22a 1.063307630.271180040.271396360.0000000000.1302958830.1877158410.0000000000.000000000.0527504870.1061730370.043795981AT2G245900.130295883 0.542576400.240466328 0.648749440.149969018RSZ22a
AT3G05760 0.827015230.145525720.346301350.0000000000.0357998020.0625110180.0623911450.053754330.0585491570.0089876380.053195073AT3G057600.035799802 0.491827080.237205646 0.500814710.062182710AT3G05760
WRKY3 0.835171000.233397260.251658910.0000000000.0038277510.0000000000.0228257600.000000000.0306477910.1183286570.174484864AT2G033400.003827751 0.485056180.053473551 0.603384840.292813520WRKY3
HB23 0.719497700.163677810.317428430.0000000000.0509386460.0000000000.0211804640.057845310.1084270340.0000000000.000000000AT5G397600.050938646 0.481106240.187452813 0.481106240.000000000HB23
ATMAK3 0.781198360.293466650.158644090.0122751580.0752676660.0499111340.0349774910.000000000.0045561130.1403297790.011770281AT2G381300.087542823 0.452110740.089444738 0.592440520.152100060ATMAK3
MBD4 0.821920130.246488830.177211680.0081466730.0000000000.0000000000.0000000000.000000000.0000000000.2186141670.171458782AT3G630300.008146673 0.423700510.000000000 0.642314670.390072949MBD4
AT5G28300 0.636572570.267600010.153256790.1480118630.0057416270.0000000000.0000000000.000000000.0324801990.0294820810.000000000AT5G283000.153753490 0.420856800.032480199 0.450338880.029482081AT5G28300
AT1G76110 0.730357550.112977150.292413860.0783023870.1739647400.0314390100.0094974070.000000000.0000000000.0317630030.000000000AT1G761100.252267127 0.405391010.040936417 0.437154010.031763003AT1G76110
NPR1 0.702425340.139650710.245744780.0451103960.0463780110.0045677340.0057497820.000000000.0000000000.0581663710.157057553AT1G642800.091488407 0.385395500.010317516 0.443561870.215223923NPR1
RAD54 0.317702600.148397460.124835890.0000000000.0000000000.0077667280.0000000000.000000000.0000000000.0251015940.011600918AT3G192100.000000000 0.273233360.007766728 0.298334950.036702511RAD54
KAPP 0.381989420.089540990.173775270.0155688430.0296383290.0023601190.0064701820.000000000.0101333800.0000000000.054502311AT5G192800.045207172 0.263316250.018963682 0.263316250.054502311KAPP
BEH4 0.473799930.192593540.060727570.1058940030.0000000000.0000000000.0000000000.000000000.0000000000.0684535440.046131270AT1G787000.105894003 0.253321110.000000000 0.321774650.114584814BEH4
SDG40 0.500714560.066915920.183890810.0383377540.0066985650.1285881470.0021598370.036292770.0000000000.0174629690.020367788AT5G172400.045036319 0.250806720.167040758 0.268269690.037830757SDG40
PUX2 0.455002670.090838810.151588150.0388992160.0768193850.0034466580.0117471630.000000000.0069146030.0270649630.047683717AT2G016500.115718600 0.242426970.022108423 0.269491930.074748680PUX2
CHR8 0.364724980.081295740.151865030.0000000000.0249683580.0152665690.0201459510.000000000.0088003780.0000000000.062382958AT2G187600.024968358 0.233160770.044212898 0.233160770.062382958CHR8
AT5G26749 0.281585640.116394000.057971250.0000000000.0583574360.0261336720.0169936750.000000000.0000000000.0057356050.000000000AT5G267490.058357436 0.174365250.043127347 0.180100860.005735605AT5G26749
PRR9 0.256411870.041840150.099240320.0483112290.0066985650.0000000000.0044252790.000000000.0000000000.0309799710.024916367AT2G467900.055009794 0.141080460.004425279 0.172060430.055896338PRR9
EMB2219 0.181360030.074109540.034460780.0000000000.0295749620.0160400590.0070742850.000000000.0000000000.0000000000.020100406AT2G217100.029574962 0.108570310.023114344 0.108570310.020100406EMB2219
AT2G46040 0.163696010.018232640.068838690.0061141530.0254869500.0077667280.0000000000.000000000.0045561130.0043657420.028335003AT2G460400.031601103 0.087071320.012322840 0.091437070.032700745AT2G46040
AT3G51180 0.111144100.040248870.027050860.0000000000.0297530470.0023601190.0117312010.000000000.0000000000.0000000000.000000000AT3G511800.029753047 0.067299740.014091321 0.067299740.000000000AT3G51180
AT1G61960 0.073690760.019286820.030223490.0000000000.0028708130.0101354320.0000000000.000000000.0000000000.0043657420.006808466AT1G619600.002870813 0.049510310.010135432 0.053876050.011174208AT1G61960
In [230]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(epi_rank[1:10,], aes(x=reorder(GeneName, epi, decreasing = FALSE),  y=epi)) + geom_point(size=4)+ 
  labs(title="Epidermis-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [1307]:
write.csv(epi_rank,"Epidermis_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [1308]:
tf_rank <- epi_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [1309]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [1310]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Epidermis ", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Epidermis + LRC¶

In [125]:
epilrc_rank <- bc_rank[which(bc_rank$epilrc*2 > bc_rank$all),]%>% arrange(desc(epilrc))
epilrc_rank <- epilrc_rank[-c(match(rownames(atri_rank), rownames(epilrc_rank)),match(rownames(tri_rank), rownames(epilrc_rank)),match(rownames(lrc_rank), rownames(epilrc_rank))),]
epilrc_rank$GeneName <- rownames(epilrc_rank)
In [126]:
epilrc_rank
A data.frame: 195 x 18
allatritricorendperproxylphllrccolGeneIDgroundepisteleepilrcrcGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><dbl><dbl><dbl><dbl><chr>
GATA230.6774737.85341315.5331610342.44511371.382593070.501816760.089676060.059362520.46277878510.40486281.94469509AT2G45050 3.827706813.38657411.1136341223.79143712.3495579GATA2
HAT732.3241477.05406485.6263988158.99659814.910315270.021220240.000000000.000000000.000000000 4.43306011.28248975AT5G1515013.906913412.68046360.0212202417.113524 5.7155498HAT7
MYB2317.4158357.91650473.1472528871.03289590.214463460.000000000.000000000.000000000.000000000 5.01108040.09363751AT5G40330 1.247359411.06375760.0000000016.074838 5.1047180MYB23
CRF228.8817884.58797962.1755736082.20961981.700071692.545597520.391099620.155104662.724359039 8.92519893.46718327AT4G23750 3.9096915 6.76355335.8161608315.68875212.3923822CRF2
ATS17.6509685.17751254.0830921971.12193310.820489840.047344560.000000000.000000000.000000000 6.02849680.37209918AT5G42630 1.9424230 9.26060470.0473445615.289101 6.4005959ATS
BT221.7165594.25507281.2292914840.26928090.010526320.000000000.000000000.000000000.000000000 9.18677056.76561708AT3G48360 0.2798072 5.48436430.0000000014.67113515.9523876BT2
NAI125.3504013.35510950.3674569961.25315940.059301310.000000000.000000000.000000000.00000000010.76913249.54624150AT2G22770 1.3124607 3.72256650.0000000014.49169920.3153739NAI1
CRF320.5645643.27450452.3618772341.34299500.897433900.187727250.023242830.000000000.000000000 8.64135443.83542869AT5G53290 2.2404289 5.63638170.2109700914.27773612.4767830CRF3
KDR15.6363715.50850155.7202700990.83656340.427781120.095169470.000000000.000000000.000000000 2.99784890.05023601AT1G26945 1.264344511.22877160.0951694714.226621 3.0480849KDR
WER20.0041465.10754062.6479262292.26598651.960009821.382113750.000000000.000000000.000000000 5.97929960.66126914AT5G14750 4.2259963 7.75546691.3821137513.734766 6.6405687WER
PLT122.9434163.57380550.0000000002.59211781.958605080.000000000.000000000.000000000.000000000 9.28344305.53544462AT3G20840 4.5507229 3.57380550.0000000012.85724814.8188876PLT1
GATA418.2851845.51295952.3905512922.85030332.115855100.206612650.035114740.112146080.113605442 4.70342410.24461154AT3G60530 4.9661584 7.90351080.4674789212.606935 4.9480356GATA4
SMB19.1256114.24334880.0000000001.58206590.177682110.000000000.000000000.000000000.000000000 7.80728925.31522494AT1G79580 1.7597480 4.24334880.0000000012.05063813.1225142SMB
BRON19.0617572.93816750.9032180881.84289560.959242940.033779850.000000000.000000000.000000000 7.63924644.74520673AT1G75710 2.8021385 3.84138560.0337798511.48063212.3844532BRON
TMO720.4235565.32938052.5590399423.17139600.573052350.741759600.000000000.000000000.004556113 3.30491494.73945683AT1G74500 3.7444483 7.88842040.7463157111.193335 8.0443717TMO7
ERF915.8752763.29780121.3031579181.55821840.177176441.032492490.039765901.522759190.062244898 5.87370521.00795472AT5G44210 1.7353948 4.60095912.6572624810.474664 6.8816599ERF9
LBD1518.8102741.91536510.0079690350.61761950.000000000.000000000.000000002.304146750.000000000 8.50116165.46401160AT2G40470 0.6176195 1.92333412.3041467510.42449613.9651732LBD15
ATHB1313.4107523.89415533.6994542201.35234571.251681510.670197320.352521350.000000000.318160955 1.82953990.04269603AT1G69780 2.6040272 7.59360951.34087963 9.423149 1.8722359ATHB13
RITF117.5733493.93137251.6525049122.48425321.920877081.919995190.000000000.000000000.000000000 3.62025862.04408737AT2G12646 4.4051303 5.58387741.91999519 9.204136 5.6643460RITF1
AT1G2668017.2035750.39270380.0000000001.73518480.000000000.000000000.000000000.000000000.000000000 8.49613766.57954848AT1G26680 1.7351848 0.39270380.00000000 8.88884115.0756860AT1G26680
NAC09415.9916613.50205070.0000000002.11854591.223563830.000000000.000000000.000000000.000000000 5.25598303.89151757AT5G39820 3.3421097 3.50205070.00000000 8.758034 9.1475006NAC094
ARR5 9.7592964.35875283.8057411570.23807190.192309440.014950030.167717650.000000000.168027211 0.48991290.32381339AT3G48100 0.4303813 8.16449390.35069489 8.654407 0.8137263ARR5
FEZ16.9020473.63567560.0000000002.46283872.072760930.000000000.000000000.000000000.000000000 4.90900763.82176365AT1G26870 4.5355997 3.63567560.00000000 8.544683 8.7307713FEZ
GATA17L14.9820292.72673641.7204314141.95301141.396985742.001845460.100077010.023080600.000000000 3.85644221.20341848AT4G16141 3.3499972 4.44716782.12500306 8.303610 5.0598607GATA17L
NFL10.8830943.63496832.6824744341.26809261.101495380.000000000.000000000.000000000.000000000 1.92252440.27353904AT5G65640 2.3695880 6.31744270.00000000 8.239967 2.1960634NFL
ATMYC1 9.8081123.70117614.3430528201.09504400.562222780.106616600.000000000.000000000.000000000 0.00000000.00000000AT4G00480 1.6572668 8.04422890.10661660 8.044229 0.0000000ATMYC1
EEL12.2452192.79844070.0000000001.45996540.380182800.075326430.000000000.000000000.000000000 5.20912922.32217441AT2G41070 1.8401482 2.79844070.07532643 8.007570 7.5313036EEL
GATA1712.6980203.15446191.9654771791.71381981.728507101.271243720.000000000.000000000.000000000 2.64836080.21614945AT3G16870 3.4423269 5.11993911.27124372 7.768300 2.8645103GATA17
WRKY1711.7523762.13930641.3851381281.00726790.551276360.161257050.102304461.234152750.150082151 4.16203180.85955851AT2G24570 1.5585443 3.52444451.64779641 7.686476 5.0215903WRKY17
ZFP514.7938542.26734630.1529572790.00000000.000000000.077257900.241142983.437453580.133673469 5.07875283.40526939AT1G10480 0.0000000 2.42030363.88952793 7.499056 8.4840222ZFP5
.........................................................
AT3G534400.339417720.049251690.0975597580.0000000000.0281478410.0000000000.0000000000.000000000.0000000000.1104309160.054027516AT3G534400.0281478410.146811440.0000000000.257242360.164458432AT3G53440
AT3G076700.437544470.178742500.0217489130.0407073390.0258439250.0537969990.0351147390.000000000.0033598760.0486245680.029605610AT3G076700.0665512640.200491410.0922716140.249115980.078230178AT3G07670
AT1G720300.443164730.200520690.0000000000.0945004420.0000000000.0263108040.0000000000.000000000.0000000000.0342857720.087547030AT1G720300.0945004420.200520690.0263108040.234806460.121832801AT1G72030
AT1G607000.378976760.121194590.0660487810.0260654290.0390911230.0000000000.0059756660.046128630.0239677190.0470573800.003447441AT1G607000.0651565520.187243370.0760720110.234300750.050504821AT1G60700
CHR80.364724980.081295740.1518650250.0000000000.0249683580.0152665690.0201459510.000000000.0088003780.0000000000.062382958AT2G187600.0249683580.233160770.0442128980.233160770.062382958CHR8
AT3G521000.463820520.056442150.0967808540.0242508930.0745192520.0137509920.0169936750.000000000.0103163980.0789912780.091775026AT3G521000.0987701450.153223000.0410610650.232214280.170766304AT3G52100
AT3G218100.397035230.107125820.0462971700.0000000000.0057416270.0059754860.0110103940.000000000.0340811920.0731228460.113680699AT3G218100.0057416270.153422990.0510670720.226545830.186803545AT3G21810
TRFL70.433079840.090319580.0173241340.0606542880.0261603540.0676341250.0021598370.000000000.0000000000.1188219560.050005565AT1G069100.0868146420.107643720.0697939620.226465670.168827520TRFL7
AT1G194900.410426270.028089750.0068538370.0122723250.0038277510.0000000000.0000000000.000000000.0000000000.1914505850.167932023AT1G194900.0161000770.034943580.0000000000.226394170.359382608AT1G19490
AT1G772500.387795980.030851150.0582740080.0221484460.0558715910.0106557220.0100858240.000000000.0021990110.1076424090.090067819AT1G772500.0780200370.089125150.0229405570.196767560.197710228AT1G77250
HAT3.10.376524840.030153490.1017036250.0000000000.0047846890.0285904760.0132076320.036942860.0223607600.0628724480.075908860AT3G195100.0047846890.131857120.1011017230.194729570.138781308HAT3.1
LSMT-L0.275758850.060354690.0051843880.0171276180.0000000000.0000000000.0000000000.016479940.0000000000.1245575520.052054663AT1G140300.0171276180.065539080.0164799370.190096630.176612214LSMT-L
AT3G469500.356538050.134079050.0396355180.1358797520.0000000000.0144060720.0075477680.000000000.0000000000.0090266570.015963234AT3G469500.1358797520.173714560.0219538410.182741220.024989891AT3G46950
AT5G267490.281585640.116394000.0579712490.0000000000.0583574360.0261336720.0169936750.000000000.0000000000.0057356050.000000000AT5G267490.0583574360.174365250.0431273470.180100860.005735605AT5G26749
NBS10.260115180.058991160.0593172190.0453050400.0000000000.0217510070.0000000000.000000000.0000000000.0553112770.019439480AT3G026800.0453050400.118308380.0217510070.173619660.074750757NBS1
PRR90.256411870.041840150.0992403160.0483112290.0066985650.0000000000.0044252790.000000000.0000000000.0309799710.024916367AT2G467900.0550097940.141080460.0044252790.172060430.055896338PRR9
CPSF300.300677500.016152080.0702649940.0000000000.0231098000.0267780520.0135234340.000000000.0055588870.0709378650.074352390AT1G304600.0231098000.086417070.0458603740.157354940.145290255CPSF30
AT2G201100.281939510.035245790.0000000000.0000000000.0047846890.0025288280.0000000000.000000000.0000000000.1079545460.131425650AT2G201100.0047846890.035245790.0025288280.143200340.239380196AT2G20110
SUVH50.244276340.050907290.0624041890.0483465960.0407134070.0052026250.0000000000.000000000.0148753580.0149896020.006837271AT2G351600.0890600030.113311480.0200779830.128301080.021826873SUVH5
AT5G074000.172341800.000000000.0851207440.0276215740.0047846890.0000000000.0000000000.000000000.0000000000.0276385360.027176254AT5G074000.0324062630.085120740.0000000000.112759280.054814790AT5G07400
EMB22190.181360030.074109540.0344607770.0000000000.0295749620.0160400590.0070742850.000000000.0000000000.0000000000.020100406AT2G217100.0295749620.108570310.0231143440.108570310.020100406EMB2219
APTX0.147518600.000000000.0715880240.0000000000.0038277510.0138238990.0032374230.000000000.0000000000.0289663820.026075116AT5G013100.0038277510.071588020.0170613230.100554410.055041498APTX
MAC5B0.180469720.029755770.0213739310.0000000000.0000000000.0294132200.0032374230.000000000.0227019850.0421729760.031814419AT2G295800.0000000000.051129700.0553526290.093302670.073987395MAC5B
AT2G460400.163696010.018232640.0688386880.0061141530.0254869500.0077667280.0000000000.000000000.0045561130.0043657420.028335003AT2G460400.0316011030.087071320.0123228400.091437070.032700745AT2G46040
AT3G191840.140294500.010404650.0367876350.0000000000.0000000000.0077667280.0000000000.000000000.0512268340.0341086480.000000000AT3G191840.0000000000.047192290.0589935610.081300940.034108648AT3G19184
AT3G511800.111144100.040248870.0270508610.0000000000.0297530470.0023601190.0117312010.000000000.0000000000.0000000000.000000000AT3G511800.0297530470.067299740.0140913210.067299740.000000000AT3G51180
AT3G072600.107496790.015658610.0000000000.0000000000.0333060000.0103308300.0000000000.000000000.0000000000.0482013590.000000000AT3G072600.0333060000.015658610.0103308300.063859960.048201359AT3G07260
TCP40.097077870.015658610.0000000000.0176480990.0124401910.0000000000.0000000000.000000000.0000000000.0444360880.006894881AT3G150300.0300882900.015658610.0000000000.060094690.051330970TCP4
AT1G619600.073690760.019286820.0302234890.0000000000.0028708130.0101354320.0000000000.000000000.0000000000.0043657420.006808466AT1G619600.0028708130.049510310.0101354320.053876050.011174208AT1G61960
CIA20.063133370.000000000.0298485080.0166160400.0038277510.0000000000.0000000000.000000000.0000000000.0128410740.000000000AT5G571800.0204437910.029848510.0000000000.042689580.012841074CIA2
In [132]:
options(repr.plot.width=8, repr.plot.height=40)
ggplot(epilrc_rank, aes(x=reorder(GeneName, epilrc, decreasing = FALSE),  y=epilrc)) + geom_point(size=4)+ 
  labs(title="Epidermis+LRC-specific TF Prioritization",x="", y = "Combined centrality score (betweeness, out and in degree)")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [1313]:
write.csv(epilrc_rank,"Epidermis_LRC_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [1314]:
tf_rank <- epilrc_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [1315]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [1316]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Epidermis (includes LRC)", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Stele¶

In [133]:
stele_rank <- bc_rank[which(bc_rank$stele*2 > bc_rank$all),]%>% arrange(desc(stele))
stele_rank <- stele_rank[-c(match(rownames(per_rank), rownames(stele_rank)),match(rownames(pro_rank), rownames(stele_rank)),match(rownames(xyl_rank), rownames(stele_rank)),match(rownames(phl_rank), rownames(stele_rank))),]
stele_rank$GeneName <- rownames(stele_rank)
In [134]:
stele_rank
A data.frame: 348 x 18
allatritricorendperproxylphllrccolGeneIDgroundepisteleepilrcrcGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><dbl><dbl><dbl><dbl><chr>
BZIP931.714470.000000000.0000000000.0000000000.006698565 8.046355811.9443040.0362276411.6808850.000000000.00000000AT5G24800 0.0066985650.00000000031.707770.0000000000.00000000BZIP9
AT3G4343029.501340.000000000.0000000000.0053757740.006698565 8.924143010.0336913.50786160 7.0235720.000000000.00000000AT3G43430 0.0120743380.00000000029.489270.0000000000.00000000AT3G43430
LEP35.576433.679886355.1989692560.5680886894.60811505112.3723072 5.8658530.21451060 2.9296080.139093050.00000000AT5G13910 5.1762037408.87885560721.382289.0179486590.13909305LEP
HB-820.220470.000000000.0086620670.0000000000.000000000 2.6361377 6.0368538.18332066 3.3554970.000000000.00000000AT4G32880 0.0000000000.00866206720.211810.0086620670.00000000HB-8
MYB2019.035560.000000000.0000000000.0000000000.000000000 5.8160656 7.0919893.20671764 2.9207850.000000000.00000000AT1G66230 0.0000000000.00000000019.035560.0000000000.00000000MYB20
HAT232.660510.000000000.0000000006.8418546346.821161147 6.2848471 4.5867682.80786121 4.9532720.000000000.36474865AT5G4737013.6630157810.00000000018.632750.0000000000.36474865HAT2
AT1G6166018.174030.000000000.0000000000.0000000000.003827751 5.2904445 6.7418881.44004495 4.6978280.000000000.00000000AT1G61660 0.0038277510.00000000018.170210.0000000000.00000000AT1G61660
AT5G0579017.036600.000000000.0000000000.0000000000.158795612 6.5991434 3.4887480.11344400 6.6764720.000000000.00000000AT5G05790 0.1587956120.00000000016.877810.0000000000.00000000AT5G05790
IAA1216.828870.000000000.0000000000.0000000000.000000000 1.4006059 7.1693315.61947935 2.6394500.000000000.00000000AT1G04550 0.0000000000.00000000016.828870.0000000000.00000000IAA12
DAG116.777140.000000000.0000000000.0000000000.000000000 4.5627956 6.9887571.03954406 4.1860430.000000000.00000000AT3G61850 0.0000000000.00000000016.777140.0000000000.00000000DAG1
AT1G2916017.927190.000000000.0000000000.0000000000.000000000 3.6244354 6.4981440.00000000 6.5346721.156448990.11348907AT1G29160 0.0000000000.00000000016.657251.1564489931.26993807AT1G29160
AT3G6049016.312300.000000000.0000000000.0000000000.000000000 4.6810522 5.0385750.11546813 6.4772080.000000000.00000000AT3G60490 0.0000000000.00000000016.312300.0000000000.00000000AT3G60490
ATAUX2-1116.293040.091947960.0000000000.1348163020.015170558 0.7387878 5.2283887.73246237 2.1693900.098431320.08364182AT5G43700 0.1499868600.09194795815.869030.1903792810.18207314ATAUX2-11
GBF615.909200.000000000.0000000000.0306921910.822865104 2.5528700 4.0579932.52959924 5.8744170.000000000.04076601AT4G34590 0.8535572950.00000000015.014880.0000000000.04076601GBF6
MYB4314.252440.000000000.0000000000.0000000000.083918310 4.5182255 6.6144510.33532323 2.7005190.000000000.00000000AT5G16600 0.0839183100.00000000014.168520.0000000000.00000000MYB43
AT4G2910014.229140.000000000.0000000000.0000000000.186437105 7.0551232 4.5973100.00000000 2.3902650.000000000.00000000AT4G29100 0.1864371050.00000000014.042700.0000000000.00000000AT4G29100
AT2G4113015.898910.067046570.1033823311.0257988250.685158671 5.9003615 3.0119743.91761657 1.1875710.000000000.00000000AT2G41130 1.7109574950.17042890514.017520.1704289050.00000000AT2G41130
GRP2B18.328150.557149290.0056921680.7271416250.369605755 1.0601005 2.9962304.87776676 4.9265821.485142831.32274366AT2G21060 1.0967473800.56284146213.860682.0479842892.80788649GRP2B
BZIP6120.015192.405624830.2222136291.4368416041.707943482 2.9291559 3.3542892.39724621 5.1550670.342960470.06384801AT3G58120 3.1447850872.62783845513.835762.9707989240.40680848BZIP61
HAT121.965021.264008570.0825946411.0911182541.008889922 4.3719031 4.6389341.64392442 3.1397573.628968721.09492642AT4G17460 2.1000081761.34660321213.794524.9755719294.72389514HAT1
HB4013.655140.000000000.0889782360.0000000000.000000000 0.6533290 1.3696645.09085865 6.4523110.000000000.00000000AT4G36740 0.0000000000.08897823613.566160.0889782360.00000000HB40
BT113.722080.000000000.0000000000.0655800250.192824030 1.6833276 4.3660755.24896676 2.1653100.000000000.00000000AT5G63160 0.2584040560.00000000013.463680.0000000000.00000000BT1
MIF115.273710.000000000.0000000000.3275347681.536133210 4.7785009 4.2793240.00000000 4.2502180.055217730.04678356AT1G74660 1.8636679790.00000000013.308040.0552177300.10200129MIF1
SGR513.307800.000000000.0000000000.0000000000.014876306 1.4021166 4.6670502.03434142 5.1894170.000000000.00000000AT2G01940 0.0148763060.00000000013.292920.0000000000.00000000SGR5
MYB8813.108950.000000000.0000000000.0000000000.002772068 1.2191321 6.0338883.78752809 2.0656310.000000000.00000000AT2G02820 0.0027720680.00000000013.106180.0000000000.00000000MYB88
AT3G1128012.792880.000000000.0000000000.0000000000.028048425 4.0258395 3.0214150.00000000 5.7175730.000000000.00000000AT3G11280 0.0280484250.00000000012.764830.0000000000.00000000AT3G11280
UNE1212.853330.000000000.0000000000.0000000000.357978648 3.1073856 3.8123282.05427524 3.4859920.000000000.03537439AT4G02590 0.3579786480.00000000012.459980.0000000000.03537439UNE12
OBP312.133140.000000000.0000000000.0000000000.000000000 2.2427787 4.9546980.27562968 4.6600310.000000000.00000000AT3G55370 0.0000000000.00000000012.133140.0000000000.00000000OBP3
AT5G5178014.690640.250047830.6044009060.3212665941.634404722 4.1575218 3.2957482.08680087 2.3404530.000000000.00000000AT5G51780 1.9556713160.85444873211.880520.8544487320.00000000AT5G51780
AT4G2406011.939820.000000000.0000000000.0628824050.370314736 3.2345887 2.8229602.59228573 2.8567920.000000000.00000000AT4G24060 0.4331971400.00000000011.506630.0000000000.00000000AT4G24060
.........................................................
AT5G407100.260209290.011165500.0000000000.000000000.0586152100.0213555070.0650099240.000000000.1040631480.0000000000.000000000AT5G407100.0586152100.0111654980.190428580.0111654980.000000000AT5G40710
AT2G192600.251304750.000000000.0000000000.000000000.0141209410.1007317770.0187133760.019780270.0445421860.0284998330.024916367AT2G192600.0141209410.0000000000.183767610.0284998330.053416200AT2G19260
LAS0.223827190.000000000.0000000000.000000000.0438105710.0900348740.0899817480.000000000.0000000000.0000000000.000000000AT1G555800.0438105710.0000000000.180016620.0000000000.000000000LAS
VAL30.279268740.000000000.0000000000.045234310.0000000000.0178470950.1288523540.000000000.0312925170.0287221860.027320279AT4G215500.0452343060.0000000000.177991970.0287221860.056042465VAL3
AT2G389500.335442610.000000000.0567884520.000000000.0865268020.0578072350.0434904220.000000000.0719281910.0029958790.015905624AT2G389500.0865268020.0567884520.173225850.0597843310.018901503AT2G38950
SDG250.258948040.000000000.0000000000.000000000.0353799560.0141677340.0360270970.000000000.1173472800.0000000000.056025973AT5G424000.0353799560.0000000000.167542110.0000000000.056025973SDG25
MBD130.303906910.000000000.0000000000.053651640.0038277510.0782631670.0405066470.000000000.0430302010.0318663510.052761156AT5G522300.0574793870.0000000000.161800010.0318663510.084627507MBD13
HSF30.304215330.000000000.0000000000.000000000.0864518720.0306370720.0645991300.000000000.0658300740.0094999440.047197239AT5G168200.0864518720.0000000000.161066280.0094999440.056697184HSF3
SCL210.281140220.022261750.0339253190.010179190.0000000000.0167863600.0041993940.000000000.1398620000.0437279020.010198297AT2G048900.0101791940.0561870730.160847750.0999149750.053926199SCL21
AT5G651300.237308310.000000000.0647724490.000000000.0000000000.0000000000.0000000000.085743440.0743342400.0000000000.012458184AT5G651300.0000000000.0647724490.160077680.0647724490.012458184AT5G65130
AT5G143700.173340370.000000000.0000000000.013536320.0028708130.0813263090.0428852690.000000000.0327216550.0000000000.000000000AT5G143700.0164071360.0000000000.156933230.0000000000.000000000AT5G14370
AT1G198600.226280340.000000000.0187815650.000000000.0315522040.0694628820.0379445530.000000000.0338610470.0165125760.018165511AT1G198600.0315522040.0187815650.141268480.0352941410.034678087AT1G19860
AT1G620850.209606220.021869790.0344607770.000000000.0038277510.1028532220.0075477680.019780270.0000000000.0000000000.019266650AT1G620850.0038277510.0563305630.130181260.0563305630.019266650AT1G62085
FRS100.170412730.000000000.0114339190.000000000.0038277510.0185652710.0512452530.000000000.0569452800.0057356050.022659651AT5G285300.0038277510.0114339190.126755800.0171695240.028395256FRS10
TGA60.192159830.000000000.0341670330.000000000.0315522040.0434663130.0439916760.000000000.0389826050.0000000000.000000000AT3G122500.0315522040.0341670330.126440590.0341670330.000000000TGA6
AT3G028600.232457330.000000000.0312759230.000000000.0386706160.0507361320.0600857760.000000000.0113126250.0096632610.030712999AT3G028600.0386706160.0312759230.122134530.0409391840.040376259AT3G02860
AT5G139200.212695320.000000000.0273224040.012220010.0510594730.0183208170.0847605630.000000000.0190120500.0000000000.000000000AT5G139200.0632794830.0273224040.122093430.0273224040.000000000AT5G13920
AT1G437700.206760720.037131710.0156169420.000000000.0038277510.0534640620.0531562270.000000000.0134066250.0210602520.009097158AT1G437700.0038277510.0527486480.120026910.0738089000.030157410AT1G43770
FRS90.135286330.000000000.0000000000.000000000.0000000000.0317189810.0055238980.023080600.0593820510.0155808000.000000000AT4G381700.0000000000.0000000000.119705530.0155808000.015580800FRS9
NAC0270.124131720.000000000.0000000000.000000000.0047846890.0416711030.0453206020.000000000.0232005580.0000000000.009154768AT1G641050.0047846890.0000000000.110192260.0000000000.009154768NAC027
TRFL50.143129910.000000000.0000000000.000000000.0028708130.0588131570.0176402790.019758550.0000000000.0213906240.022656480AT1G157200.0028708130.0000000000.096211990.0213906240.044047105TRFL5
bHLH110.184086270.045802340.0000000000.000000000.0000000000.0582027280.0198983520.000000000.0178559680.0000000000.042326876AT4G360600.0000000000.0458023450.095957050.0458023450.042326876bHLH11
AT1G106100.142211840.000000000.0000000000.000000000.0028708130.0023601190.0485972520.042640860.0021990110.0029958790.040547901AT1G106100.0028708130.0000000000.095797240.0029958790.043543780AT1G10610
BMY20.183483630.024592700.0056921680.000000000.0211406070.0366653920.0150845070.000000000.0419314770.0218843130.016492464AT5G453000.0211406070.0302848670.093681380.0521691800.038376777BMY2
DRD10.091193230.000000000.0000000000.000000000.0038277510.0257199360.0141282190.000000000.0384201680.0000000000.009097158AT2G163900.0038277510.0000000000.078268320.0000000000.009097158DRD1
ATE2F20.128688520.000000000.0051843880.000000000.0231532280.0380824440.0369115940.000000000.0000000000.0128410740.012515794AT1G478700.0231532280.0051843880.074994040.0180254610.025356867ATE2F2
EMB31140.079132220.000000000.0000000000.000000000.0047846890.0343806570.0216746240.000000000.0000000000.0125849200.005707328AT2G360000.0047846890.0000000000.056055280.0125849200.018292248EMB3114
MYB640.066996600.000000000.0000000000.010179190.0000000000.0000000000.0000000000.029681260.0232084960.0039276550.000000000AT5G110500.0101791940.0000000000.052889750.0039276550.003927655MYB64
AT2G246800.046098760.000000000.0215614220.000000000.0000000000.0099390280.0145983090.000000000.0000000000.0000000000.000000000AT2G246800.0000000000.0215614220.024537340.0215614220.000000000AT2G24680
SHOT10.024131200.000000000.0000000000.000000000.0047846890.0082987130.0110477950.000000000.0000000000.0000000000.000000000AT3G604000.0047846890.0000000000.019346510.0000000000.000000000SHOT1
In [231]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(stele_rank[1:10,], aes(x=reorder(GeneName, stele, decreasing = FALSE),  y=stele)) + geom_point(size=4)+ 
  labs(title="Stele-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [1319]:
write.csv(stele_rank,"Stele_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [1320]:
tf_rank <- stele_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [1321]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [1322]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Stele", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))

Root Cap¶

In [138]:
rc_rank <- bc_rank[which(bc_rank$rc*2 > bc_rank$all),]%>% arrange(desc(rc))
rc_rank <- rc_rank[-c(match(rownames(lrc_rank), rownames(rc_rank)),match(rownames(col_rank), rownames(rc_rank))),]
rc_rank$GeneName <- rownames(rc_rank)
In [139]:
rc_rank
A data.frame: 176 x 18
allatritricorendperproxylphllrccolGeneIDgroundepisteleepilrcrcGeneName
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><chr><dbl><dbl><dbl><dbl><dbl><chr>
NAI125.3504013.355109510.3674569961.253159370.0593013060.000000000.000000000.000000000.0000000010.7691329.546241AT2G227701.3124606743.722566510.0000000014.49169920.315374NAI1
BT221.7165594.255072811.2292914840.269280900.0105263160.000000000.000000000.000000000.00000000 9.1867716.765617AT3G483600.2798072195.484364290.0000000014.67113515.952388BT2
AT1G3270019.4810280.077696750.0000000000.032219270.0957720000.310775201.101406890.205036162.42733679 6.3543578.876429AT1G327000.1279912750.077696754.04455503 6.43205315.230785AT1G32700
AT1G2668017.2035750.392703820.0000000001.735184780.0000000000.000000000.000000000.000000000.00000000 8.4961386.579548AT1G266801.7351847770.392703820.00000000 8.88884115.075686AT1G26680
PLT122.9434163.573805500.0000000002.592117791.9586050760.000000000.000000000.000000000.00000000 9.2834435.535445AT3G208404.5507228693.573805500.0000000012.85724814.818888PLT1
AT1G3606018.2047852.347130110.4688064110.680775810.2405220720.018320820.000000000.000000000.00000000 6.1494258.299804AT1G360600.9212978812.815936530.01832082 8.96536214.449229AT1G36060
LBD1518.8102741.915365090.0079690350.617619530.0000000000.000000000.000000002.304146750.00000000 8.5011625.464012AT2G404700.6176195341.923334132.3041467510.42449613.965173LBD15
SMB19.1256114.243348790.0000000001.582065880.1776821100.000000000.000000000.000000000.00000000 7.8072895.315225AT1G795801.7597479944.243348790.0000000012.05063813.122514SMB
CRF320.5645643.274504452.3618772341.342995040.8974338960.187727250.023242830.000000000.00000000 8.6413543.835429AT5G532902.2404289365.636381690.2109700914.27773612.476783CRF3
BRON19.0617572.938167540.9032180881.842895590.9592429380.033779850.000000000.000000000.00000000 7.6392464.745207AT1G757102.8021385283.841385630.0337798511.48063212.384453BRON
AXR317.5713323.860854840.0086113061.049791330.0079791300.157026402.145339910.000000000.08629990 2.2895637.965865AT1G042501.0577704633.869466142.38866621 6.15903010.255429AXR3
AIL611.9823111.534253030.0000000000.398196290.1775864430.000000000.000000000.000000000.00000000 4.8503105.021966AT5G105100.5757827291.534253030.00000000 6.384563 9.872276AIL6
RAV212.0248700.229488300.0000000000.000000000.0038277510.677468431.030515040.122090500.42800123 4.5204325.013047AT1G688400.0038277510.229488302.25807520 4.749921 9.533479RAV2
BIM113.7335191.703219800.2722365690.505857200.1644532890.243300300.361982080.085765161.07417198 4.5267064.795826AT5G081300.6703104881.975456371.76521951 6.502163 9.322532BIM1
NAC09415.9916613.502050730.0000000002.118545881.2235638290.000000000.000000000.000000000.00000000 5.2559833.891518AT5G398203.3421097073.502050730.00000000 8.758034 9.147501NAC094
FEZ16.9020473.635675640.0000000002.462838742.0727609340.000000000.000000000.000000000.00000000 4.9090083.821764AT1G268704.5355996753.635675640.00000000 8.544683 8.730771FEZ
ZFP514.7938542.267346350.1529572790.000000000.0000000000.077257900.241142983.437453580.13367347 5.0787533.405269AT1G104800.0000000002.420303633.88952793 7.499056 8.484022ZFP5
AT3G52440 9.3628330.278889300.0000000000.783710310.0000000000.000000000.000000000.000000000.00000000 3.6588784.641356AT3G524400.7837103080.278889300.00000000 3.937767 8.300234AT3G52440
SPT11.8173881.648411040.0000000001.247169940.2032253660.217050350.106310620.304844600.04591837 4.4556283.588829AT4G369301.4503953061.648411040.67412394 6.104039 8.044458SPT
PLT213.3335922.362006150.0000000001.771501201.1209093200.057005620.000000000.000000000.00000000 4.9720743.050095AT1G511902.8924105202.362006150.05700562 7.334080 8.022169PLT2
AGL2110.9236730.324073430.0000000001.716619370.2797247690.251581530.255223630.000000000.09524688 4.3869633.614240AT4G379401.9963441390.324073430.60205204 4.711037 8.001203AGL21
WRKY15 9.6619250.564127280.0000000000.682971200.6627206530.029025000.110108060.000000000.00000000 2.8467794.766194AT2G233201.3456918570.564127280.13913306 3.410906 7.612973WRKY15
EEL12.2452192.798440750.0000000001.459965380.3801828030.075326430.000000000.000000000.00000000 5.2091292.322174AT2G410701.8401481812.798440750.07532643 8.007570 7.531304EEL
AT1G68920 9.4806050.585071090.0000000000.311541250.1478873730.000000000.000000000.000000000.92726005 4.2058023.303043AT1G689200.4594286210.585071090.92726005 4.790873 7.508846AT1G68920
AT4G3978013.7829971.237704381.6605059780.268308050.4261782700.034494530.060750720.000000002.78283335 3.1102634.201959AT4G397800.6944863232.898210362.87807861 6.008474 7.312222AT4G39780
AT1G4947510.2885040.830005750.0000000001.688313660.3814131470.059141610.042520590.000000000.00000000 4.2661743.020935AT1G494752.0697268080.830005750.10166221 5.096179 7.287109AT1G49475
ATL6 9.3255920.780018990.0725621001.262752880.1112867230.038391920.108856990.062695410.15937929 3.1118953.617753AT3G052001.3740396020.852581090.36932361 3.964476 6.729648ATL6
IAA3310.9612641.637624670.0000000001.877172920.9025369070.000000000.000000000.000000000.00000000 3.5554432.988487AT5G574202.7797098221.637624670.00000000 5.193067 6.543930IAA33
HSFA7A 8.1107070.191822850.0034269180.108888330.0993613980.153459880.218685530.075683890.74900271 3.4076193.102756AT3G519100.2082497310.195249761.19683201 3.602869 6.510375HSFA7A
AT1G2219011.2324253.278005140.0423341191.291700950.1490373460.000000000.057588170.178196110.02312925 4.0364292.176005AT1G221901.4407382923.320339260.25891353 7.356768 6.212434AT1G22190
.........................................................
AT1G026700.507394880.1153289510.0000000000.1221573830.0000000000.0000000000.0000000000.000000000.0000000000.1877487210.082159827AT1G026700.1221573830.1153289510.0000000000.3030776720.26990855AT1G02670
AT2G481000.513493990.0464379600.0421322480.0000000000.0282590180.0391794800.0493233550.000000000.0499350610.1441702130.114056656AT2G481000.0282590180.0885702080.1384378960.2327404220.25822687AT2G48100
EFS0.492038480.0071071430.1060640540.0437367650.0315522040.0094566810.0345955400.000000000.0131333800.0530858290.193306883AT1G773000.0752889690.1131711970.0571856010.1662570260.24639271EFS
EMB27730.417853380.0000000000.0297242630.0254830480.0450046340.0094166790.0119739780.000000000.0555772540.0820006660.158672861AT5G155400.0704876820.0297242630.0769679110.1117249290.24067353EMB2773
AT2G201100.281939510.0352457930.0000000000.0000000000.0047846890.0025288280.0000000000.000000000.0000000000.1079545460.131425650AT2G201100.0047846890.0352457930.0025288280.1432003390.23938020AT2G20110
AT4G290000.305155940.0000000000.0180617800.0000000000.0365503570.0122487140.0063466260.000000000.0000000000.0970277570.134920705AT4G290000.0365503570.0180617800.0185953400.1150895370.23194846AT4G29000
AT2G470900.284304130.0000000000.0034269180.0238373120.0141209410.0048889470.0103327410.000000000.0045561130.1371507450.085990417AT2G470900.0379582530.0034269180.0197778020.1405776630.22314116AT2G47090
NPR40.390916470.0371974870.0358364820.0176013640.0417980740.0083356050.0307502140.000000000.0000000000.0592280120.160169235AT4G196600.0593994370.0730339690.0390858190.1322619810.21939725NPR4
TAF6B0.342526000.0441829920.0335287940.0268435010.0028708130.0084860700.0000000000.000000000.0193245610.0794840570.127805211AT1G543600.0297143150.0777117870.0278106310.1571958430.20728927TAF6B
AT1G772500.387795980.0308511460.0582740080.0221484460.0558715910.0106557220.0100858240.000000000.0021990110.1076424090.090067819AT1G772500.0780200370.0891251540.0229405570.1967675630.19771023AT1G77250
PIE10.272388490.0000000000.0000000000.0104048600.0427266210.0234779840.0021598370.000000000.0085772670.1085669870.076474936AT3G128100.0531314810.0000000000.0342150890.1085669870.18504192PIE1
FLD0.353458060.0000000000.0096809220.0000000000.0730880560.0339852480.0140412750.000000000.0381860670.0773524760.107124012AT3G103900.0730880560.0096809220.0862125900.0870333980.18447649FLD
AT4G147200.301419390.0000000000.0000000000.0000000000.0249789490.0130866600.0326818510.000000000.0533204500.0749472990.102404181AT4G147200.0249789490.0000000000.0990889610.0749472990.17735148AT4G14720
LSMT-L0.275758850.0603546900.0051843880.0171276180.0000000000.0000000000.0000000000.016479940.0000000000.1245575520.052054663AT1G140300.0171276180.0655390770.0164799370.1900966290.17661221LSMT-L
AT5G227600.313101900.0000000000.0315960450.0237238120.0377136780.0204527250.0075477680.000000000.0223607600.0678192780.101887835AT5G227600.0614374900.0315960450.0503612530.0994153230.16970711AT5G22760
AT1G043900.246490840.0376601370.0000000000.0135104500.0276292480.0046094480.0021598370.000000000.0000000000.0712804300.089641286AT1G043900.0411396990.0376601370.0067692860.1089405670.16092172AT1G04390
BAM70.303901260.0000000000.0386659510.0370656810.0255981280.0060571720.0075477680.000000000.0342342950.0297227330.125009535AT2G458800.0626638090.0386659510.0478392350.0683886830.15473227BAM7
AT5G415800.279548830.0126836720.0504724550.0115296200.0221962900.0143687710.0000000000.000000000.0140531410.0679527900.086292088AT5G415800.0337259100.0631561270.0284219120.1311089170.15424488AT5G41580
AT4G210600.289438150.0000000000.0000000000.0076746240.0047846890.0082956030.0387743980.000000000.0773967360.0692757090.083236392AT4G210600.0124593130.0000000000.1244667360.0692757090.15251210AT4G21060
AT1G295600.254677750.0218454470.0000000000.0000000000.0000000000.0000000000.0097232920.019791120.0529655730.0327631270.117589185AT1G295600.0000000000.0218454470.0824799890.0546085740.15035231AT1G29560
AT2G246500.225850780.0000000000.0213263000.0000000000.0210294290.0220475180.0000000000.000000000.0129773820.0558914100.092578745AT2G246500.0210294290.0213263000.0350248990.0772177110.14847016AT2G24650
RAD50.241590800.0222617540.0150273220.0000000000.0000000000.0285028080.0125674660.000000000.0269182620.0809088150.055404376AT5G227500.0000000000.0372890760.0679885350.1181978920.13631319RAD5
HSI20.246521920.0000000000.0068538370.0000000000.0390530840.0228365150.0454263850.000000000.0045561130.0414360050.086359982AT2G304700.0390530840.0068538370.0728190130.0482898420.12779599HSI2
AT1G103200.217286440.0000000000.0000000000.0053757740.0095693780.0169141310.0189955840.000000000.0406495060.0674021010.058379965AT1G103200.0149451520.0000000000.0765592210.0674021010.12578207AT1G10320
HSF10.207842290.0000000000.0096809220.0000000000.0241101660.0034466580.0185488850.000000000.0336839290.0581097450.060261982AT4G177500.0241101660.0096809220.0556794720.0677906670.11837173HSF1
FRS60.162271680.0000000000.0113503710.0000000000.0210294290.0070996720.0194197580.000000000.0021990110.0250817030.076091740AT1G525200.0210294290.0113503710.0287184420.0364320730.10117344FRS6
NF-YA90.173590130.0158286510.0069319720.0000000000.0310186540.0203447920.0000000000.000000000.0033598760.0182154050.077890784AT3G209100.0310186540.0227606230.0237046680.0409760280.09610619NF-YA9
TCP40.097077870.0156586060.0000000000.0176480990.0124401910.0000000000.0000000000.000000000.0000000000.0444360880.006894881AT3G150300.0300882900.0156586060.0000000000.0600946950.05133097TCP4
AT2G256500.032132720.0000000000.0000000000.0000000000.0047846890.0000000000.0000000000.000000000.0000000000.0114712110.015876819AT2G256500.0047846890.0000000000.0000000000.0114712110.02734803AT2G25650
AT4G196500.023885650.0000000000.0000000000.0000000000.0038277510.0060571720.0000000000.000000000.0000000000.0082933980.005707328AT4G196500.0038277510.0000000000.0060571720.0082933980.01400073AT4G19650
In [232]:
options(repr.plot.width=6, repr.plot.height=4)
ggplot(rc_rank[1:10,], aes(x=reorder(GeneName, rc, decreasing = FALSE),  y=rc)) + geom_point(size=4)+ 
  labs(title="Root Cap-specific TF Prioritization",x="", y = "Combined centrality score")+
  theme_classic()+
  theme(axis.text.x = element_text(color = "black", 
                           size = 16, angle = 0),
          axis.text.y = element_text( color = "black", 
                           size = 16, angle = 0),
        plot.title = element_text(color="black", size=18, face="bold"),
        axis.title.x = element_text(color="black", size=16, face="bold"))+ coord_flip()
In [1325]:
write.csv(stele_rank,"Root_Cap_TF_centrality_all_transition_zscore3.csv", quote=FALSE, row.names=TRUE)
In [1326]:
tf_rank <- rc_rank %>% rownames(.)
# Max 20
p1 <- plot_bc(tf_rank[1]) + plot_bc(tf_rank[2]) + plot_bc(tf_rank[3]) + plot_bc(tf_rank[4]) + plot_bc(tf_rank[5])
p2 <- plot_bc(tf_rank[6]) + plot_bc(tf_rank[7]) + plot_bc(tf_rank[8]) + plot_bc(tf_rank[9]) + plot_bc(tf_rank[10])
p3 <- plot_bc(tf_rank[11]) + plot_bc(tf_rank[12]) + plot_bc(tf_rank[13]) + plot_bc(tf_rank[14]) + plot_bc(tf_rank[15])
p4 <- plot_bc(tf_rank[16]) + plot_bc(tf_rank[17]) + plot_bc(tf_rank[18]) + plot_bc(tf_rank[19]) + plot_bc(tf_rank[20])

p5 <- plot_oc(tf_rank[1]) + plot_oc(tf_rank[2]) + plot_oc(tf_rank[3]) + plot_oc(tf_rank[4]) + plot_oc(tf_rank[5])
p6 <- plot_oc(tf_rank[6]) + plot_oc(tf_rank[7]) + plot_oc(tf_rank[8]) + plot_oc(tf_rank[9]) + plot_oc(tf_rank[10])
p7 <- plot_oc(tf_rank[11]) + plot_oc(tf_rank[12]) + plot_oc(tf_rank[13]) + plot_oc(tf_rank[14]) + plot_oc(tf_rank[15])
p8 <- plot_oc(tf_rank[16]) + plot_oc(tf_rank[17]) + plot_oc(tf_rank[18]) + plot_oc(tf_rank[19]) + plot_oc(tf_rank[20])

p9 <- plot_ic(tf_rank[1]) + plot_ic(tf_rank[2]) + plot_ic(tf_rank[3]) + plot_ic(tf_rank[4]) + plot_ic(tf_rank[5])
p10 <- plot_ic(tf_rank[6]) + plot_ic(tf_rank[7]) + plot_ic(tf_rank[8]) + plot_ic(tf_rank[9]) + plot_ic(tf_rank[10])
p11 <- plot_ic(tf_rank[11]) + plot_ic(tf_rank[12]) + plot_ic(tf_rank[13]) + plot_ic(tf_rank[14]) + plot_ic(tf_rank[15])
p12 <- plot_ic(tf_rank[16]) + plot_ic(tf_rank[17]) + plot_ic(tf_rank[18]) + plot_ic(tf_rank[19]) + plot_ic(tf_rank[20])
In [1327]:
p1 <- grid.grabExpr(draw(p1))
p2 <- grid.grabExpr(draw(p2))
p3 <- grid.grabExpr(draw(p3))
p4 <- grid.grabExpr(draw(p4))
p5 <- grid.grabExpr(draw(p5))
p6 <- grid.grabExpr(draw(p6))
p7 <- grid.grabExpr(draw(p7))
p8 <- grid.grabExpr(draw(p8))
p9 <- grid.grabExpr(draw(p9))
p10 <- grid.grabExpr(draw(p10))
p11 <- grid.grabExpr(draw(p11))
p12 <- grid.grabExpr(draw(p12))
col_fun = colorRamp2(c(0, 0.001, 1), c('navy',"khaki1", "red"))
legend_grob1 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "weighted\nnetwork\ncentrality")))
col_fun = colorRamp2(c(0, 0.001, 1), c('gainsboro', "grey", "black"))
legend_grob2 <- grid.grabExpr(draw(Legend(col_fun = col_fun, title = "unweighted\nnetwork\ncentrality")))
In [1328]:
options(repr.plot.width=24, repr.plot.height=12)
plot_grid(plot_grid(textbox_grob("Main Regulatory TFs for Root Cap", gp = gpar(fontsize = 20, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),
          plot_grid(plot_grid(textbox_grob("Betweenness centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p1,p2,p3,p4,nrow=4),nrow=2,rel_heights = c(1, 14))
                    ,plot_grid(textbox_grob("Out-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p5,p6,p7,p8,nrow=4),nrow=2,rel_heights=c(1,14))
                    ,plot_grid(textbox_grob("In-degree centrality", gp = gpar(fontsize = 16, col='black'), background_gp = gpar(fill = "#FFFFFF", col = NA)),plot_grid(p9,p10,p11,p12,nrow=4),nrow=2,rel_heights=c(1,14)),nrow=1),nrow=2,rel_heights = c(1, 14)),plot_grid(legend_grob1,legend_grob2,nrow=2), rel_widths = c(19, 1))